問題タブ [ioctl]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
linux - Linux Char ドライバー: ioctl 呼び出しのブロック
私はドライバー開発に不慣れで、ユーザープロセスが私のcharドライバーが最後に読み書きした時間(timespec)を取得できるようにするioctlを持つ単純なcharドライバーを作成しようとしています。
main.c
-- char デバイスをテストするユーザー プログラム:
main.c
私のcharデバイスをテストするプログラムです。プログラムはread_delta
値を出力した後にブロックします。ioctl でブロックすると仮定しています。コードで何が間違っていますか?
c - iOS の ioctl() 呼び出しリスト
急ごしらえ: iOS の ioctl() 呼び出しのパラメーターの宣言はどこ (どのヘッダー ファイル) にありますか? 私はすでに ioctl.h を見ており、最初のレベルのインクルードはそれをインポートしていますが、それらが検索する唯一の場所であるかどうかはわかりません。特に、この関数を使用して、いくつかの特別なハードウェア機能 (加速度計や振動モーターへのアクセスなど) を制御することに興味があります。
c++ - Unix から Linux への ioctl() 呼び出しの移植、FIONBIO でのエラー
ioctl() を使用して、読み取り可能なバイト数を取得したい
私がやった方法は次のとおりです。
これは unix では問題なく動作していましたが、今度は Linux に移植する必要があります。エラーが発生し続けます。
エラー: 'FIONBIO' はこのスコープで宣言されていません
Linux に固有のヘッダー ファイルはありますか? または 'FIOBIO' が Linux でまったく動作しませんか?
次のヘッダーが含まれています。
そして私は削除しました
sys/filio.hが見つからないというエラーをスローしていたため
linux - カスタムLinuxカーネルのioctlが突然応答を停止し、数分後に再開します
セットアップ:
IOCTLを呼び出すCPプロセスがあります。次に、カーネルIOCTLハンドラーは、ハードウェアに何かを書き込み、結果を返します。このウォッチドッグパンチは定期的に行われます。
問題:
デバッグ印刷を使用して、CPプロセスとカーネルモジュールが同時にデバッグの印刷を停止することを確認しました。カーネルモジュールは常にそのタスクを完了しています。数分後、デバッグが再び印刷され始めます。問題が存在する間、ls、topなどを実行してカーネル自体がハングしていないことを確認しました。
カーネルモジュールに問題がない可能性があることを理解しています。では、どこから探し始めますか?
sockets - L2CAP ソケットでの再送信のキャンセル
C Bluetooth プログラミング (Linux Bluez) で私が抱えている問題について誰かが私を助けてくれるかどうか疑問に思っていました。Ubuntu 10.04、BlueZ 4.60 を使用しています。私の目標は、2 台のコンピューター間でデータを送信する際の遅延が最小限になる L2CAP ソケットを用意することです。これまでのところ、L2CAP ソケットを開くことができましたが、このソケットには無限の再送信があり、変更しようとしています。データを最小限の遅延で高速に転送する必要があり、データの信頼性は重要ではないため、再送信をまったく行いません。
ソケットのフラッシュタイムアウトの変更を扱うオンラインの例を見つけました。これにより、パケットが一定時間後に確認応答されない場合、パケットがドロップされ、バッファー内の次のデータが送信されます。問題は、この例が機能しないことです:-(
これが私のコードです。このメソッドは bind コマンドの後に呼び出されます。
int set_flush_timeout(bdaddr_t *ba, int timeout)
{
int err = 0, dd, dev_id;
struct hci_conn_info_req *cr = 0;
struct hci_request rq = { 0 };
私の間違いは何ですか?私の問題を解決する別のオプションを知っている人はいますか。コード例も素晴らしいでしょう!!
ありがとう!!
c++ - IOCTL_STORAGE_GET_MEDIA_SERIAL_NUMBER を呼び出すときの無効なハンドル
c/c++ IOCTL 呼び出しの経験がある人はいますか? 基本的に、USB メモリ スティックが接続されているポートを特定しようとしています。すべての USB 情報とボリューム情報があります。どうやら、これら 2 つの情報ブロックをリンクするには、ドライバー キーまたはシリアル番号が必要です。ただし、DeviceIoControl を呼び出すと、「最後のエラー コード」として無効なハンドルが表示されます
私のドライブ c:\ のディレクトリにマウントされた USB ドライブ (ドライブ文字ではありません) 以下を参照してください
windows - Windows でプログラムの DeviceIoControl 呼び出しをログに記録する方法
アプリケーションの DeviceIoControl() システム コールをキャプチャする必要があります。Linux では、strace を使用してすべての ioctl 呼び出しを分析できます。Windowsに同様の機能はありますか?
MSDN の Web サイトでは、実行可能ファイルのリアルタイム アクティビティを分析する「Process Monitor」というプログラムを推奨しています。ただし、「プロセス モニター」には、DeviceIoControl 呼び出しについては何も表示されません。
linux - Wifiから切断すると、Linuxでioctlを使用してMACアドレスを取得できません
この方法を使用してMacアドレスを取得しています:
(Cプログラムを使用してマシンのMACアドレスを取得する方法から取得?)
ただし、Wifiネットワークから切断すると、ioctlを最初に呼び出すと空のリストが返されます。
この動作について説明していただけますか?
c - cmd = 2の場合、ioctlは呼び出されません
私はunlocked_ioctlを使用するカーネルモジュールを開発しています。カーネルバージョン2.6.24-23-genericでテストしましたが、完全に機能します。カーネルバージョン3.3.1-1-ARCHで試してみたところ、奇妙なことが起こりました。要求値(cmd)が2の場合、ioctl関数は実行されません。0を返しますが、関数は実行されません。実行されていないことを確認するために、次のことを行いました。
このデバイスのioctlを0から4096まで呼び出すテストプログラムを作成しました。dmesgで、表示されていない唯一の「2」を除くすべての値に対して「Called with cmd=n」というメッセージを確認できます。
私が間違っていることについての手がかりはありますか?
前もって感謝します、