問題タブ [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.

0 投票する
1 に答える
6629 参照

linux - Linux Char ドライバー: ioctl 呼び出しのブロック

私はドライバー開発に不慣れで、ユーザープロセスが私のcharドライバーが最後に読み書きした時間(timespec)を取得できるようにするioctlを持つ単純なcharドライバーを作成しようとしています。

main.c-- char デバイスをテストするユーザー プログラム:

main.c私のcharデバイスをテストするプログラムです。プログラムはread_delta値を出力した後にブロックします。ioctl でブロックすると仮定しています。コードで何が間違っていますか?

0 投票する
1 に答える
1386 参照

c - iOS の ioctl() 呼び出しリスト

急ごしらえ: iOS の ioctl() 呼び出しのパラメーターの宣言はどこ (どのヘッダー ファイル) にありますか? 私はすでに ioctl.h を見ており、最初のレベルのインクルードはそれをインポートしていますが、それらが検索する唯一の場所であるかどうかはわかりません。特に、この関数を使用して、いくつかの特別なハードウェア機能 (加速度計や振動モーターへのアクセスなど) を制御することに興味があります。

0 投票する
1 に答える
25316 参照

c++ - Unix から Linux への ioctl() 呼び出しの移植、FIONBIO でのエラー

ioctl() を使用して、読み取り可能なバイト数を取得したい

私がやった方法は次のとおりです。

これは unix では問題なく動作していましたが、今度は Linux に移植する必要があります。エラーが発生し続けます。

エラー: 'FIONBIO' はこのスコープで宣言されていません

Linux に固有のヘッダー ファイルはありますか? または 'FIOBIO' が Linux でまったく動作しませんか?

次のヘッダーが含まれています。

そして私は削除しました

sys/filio.hが見つからないというエラーをスローしていたため

0 投票する
2 に答える
234 参照

linux - カスタムLinuxカーネルのioctlが突然応答を停止し、数分後に再開します

セットアップ:
IOCTLを呼び出すCPプロセスがあります。次に、カーネルIOCTLハンドラーは、ハードウェアに何かを書き込み、結果を返します。このウォッチドッグパンチは定期的に行われます。

問題:
デバッグ印刷を使用して、CPプロセスとカーネルモジュールが同時にデバッグの印刷を停止することを確認しました。カーネルモジュールは常にそのタスクを完了しています。数分後、デバッグが再び印刷され始めます。問題が存在する間、ls、topなどを実行してカーネル自体がハングしていないことを確認しました。

カーネルモジュールに問題がない可能性があることを理解しています。では、どこから探し始めますか?

0 投票する
1 に答える
1642 参照

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 };

私の間違いは何ですか?私の問題を解決する別のオプションを知っている人はいますか。コード例も素晴らしいでしょう!!

ありがとう!!

0 投票する
3 に答える
2337 参照

c++ - IOCTL_STORAGE_GET_MEDIA_SERIAL_NUMBER を呼び出すときの無効なハンドル

c/c++ IOCTL 呼び出しの経験がある人はいますか? 基本的に、USB メモリ スティックが接続されているポートを特定しようとしています。すべての USB 情報とボリューム情報があります。どうやら、これら 2 つの情報ブロックをリンクするには、ドライバー キーまたはシリアル番号が必要です。ただし、DeviceIoControl を呼び出すと、「最後のエラー コード」として無効なハンドルが表示されます

私のドライブ c:\ のディレクトリにマウントされた USB ドライブ (ドライブ文字ではありません) 以下を参照してください

0 投票する
4 に答える
5431 参照

windows - Windows でプログラムの DeviceIoControl 呼び出しをログに記録する方法

アプリケーションの DeviceIoControl() システム コールをキャプチャする必要があります。Linux では、strace を使用してすべての ioctl 呼び出しを分析できます。Windowsに同様の機能はありますか?

MSDN の Web サイトでは、実行可能ファイルのリアルタイム アクティビティを分析する「Process Monitor」というプログラムを推奨しています。ただし、「プロセス モニター」には、DeviceIoControl 呼び出しについては何も表示されません。

0 投票する
1 に答える
1457 参照

linux - Wifiから切断すると、Linuxでioctlを使用してMACアドレスを取得できません

この方法を使用してMacアドレスを取得しています:

Cプログラムを使用してマシンのMACアドレスを取得する方法から取得?

ただし、Wifiネットワークから切断すると、ioctlを最初に呼び出すと空のリストが返されます。

この動作について説明していただけますか?

0 投票する
2 に答える
3727 参照

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」というメッセージを確認できます。

私が間違っていることについての手がかりはありますか?

前もって感謝します、

0 投票する
5 に答える
24492 参照

c - C の Linux でビープ音を鳴らす

システムのビープ音を使用して、特定の周波数と長さ (さまざまな音声信号に対して) のビープ音を生成したいと考えています (ビープ音を使用できない/アクセスできない場合はスピーカーのみ)。ioctl を使用してこれを実行できることはわかっていますが、それには root アクセスが必要であり、これは望ましくありません。

「ビープ」コマンドを使用できることはわかっていますが、それは依存関係であり、可能であれば使用すべきではありません (外部依存関係はまったくなく、基本的な Linux ライブラリと C だけです)。

私が現在持っているのは次のコードです(ただし、これを実行するにはスーパーユーザー権限が必要です):

これを行う方法が他にない場合は、ビープ音を使用しますが、依存関係を避けてビープ音をスクリプトに直接統合したいのですが、ここの誰かが解決策/回避策を知っていると確信しています.

プログラムはできるだけ軽量にする必要があるため、外部ライブラリは本当に必要ありません。