問題タブ [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 に答える
861 参照

windows - Windows で Linux スタイルの /dev/sdXY でパーティションを開くにはどうすればよいですか?

Linux スタイル の Windows でパーティションを開くにはどうすればよい/dev/sdXYですか? 現在、パーティションのレイアウトを取得するために開いて\\\\.\\PhysicalDrive%d呼び出しDeviceIoControl(IOCTL_DISK_GET_DRIVE_LAYOUT, ...)、ファイルシステムを含む領域のオフセットとサイズを保存しています。私のコードでは、デバイスの IO 操作をパーティションへのオフセットでオフセットしました。

さらに、明らかに同期動作を削除するにはどうすればよいですか? Windows の物理ドライブの raw デバイスでの操作は非常に遅く、可能な場合は OS がキャッシュを行うことをお勧めします。

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

c - ioctl コマンドでユーザー空間から構造体をコピーすると失敗するのはなぜですか?

デバイス ドライバーを開発しており、IOCTL を利用する必要があります。残念ながら、ユーザー空間から構造体をコピーすることはできません。コードは次のとおりです (簡素化され、エラー処理が削除されています)。

構造

応用

カーネルモジュール

よろしく、
オリバー・ハナッピ

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

python - 操作は許可されていません

Pythonスクリプトでコマンドを実行したい

設定a+rwしまし/dev/consoleたが、通常のユーザーからスクリプトを実行すると:

fcntl.ioctl(console_fd, KDSETLED, SCR_LED) IOError: [Errno 1] 操作は許可されていません

通常のユーザーからそのスクリプトを実行する必要がある場合はどうすればよいですか?

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

linux - ネットワーク ioctl の man ページは何ですか?

ioctl SIOCGIFADDR を使用して、Linux のインターフェイスのアドレスを特定したいと考えています。これを行う方法を説明する Web リファレンスをいくつか見つけましたが、私のシステムには既にこれに関するリファレンスがあるはずです。SIOCGIFADDR とその仲間について説明している man ページ (またはその他のもの) はありますか? man netdevice近いですが、問題のioctlがありません。

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

c++ - シリアル Mac OS X は、Arduino への USB で常にフリーズ/ロック/消える

AMSerial ライブラリと汎用 C (ioctl、termios) の両方を使用してXcodeで実行している C++ コードに問題があります。

新たに再起動した後、アプリケーションは正常に動作しますが、プログラムを「強制終了」した後、シリアル (と思います) が解放されません。

開いているファイルをチェックして/dev、そこからシリアル USB への接続を切断しましたが、私の C++ はまだ USB ポートを開くことができません。

前述のライブラリを使用してポートを閉じても、ポートを無期限にブロックすることに関して、これを低レベルの Mac OS X の問題に絞り込みました。

状況を説明するために、USB ポートを介してArduino Duemilanoveにシリアルで 9600 ボーで数値を送信しようとしています。Arduino でシリアル モニタを実行するのはまったく問題ありませんが、C++ アプリケーションを実行すると、コンピュータがフリーズし、マウス/キーボードがフリーズすることがあります。ハード リセットが必要です。

この問題はどのように修正できますか? Mac OS X は USB フレンドリーではないようです。

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

windows - WindowsのデバイスにATAコマンドを直接送信しますか?

Windowsの物理ディスクにATAコマンドを送信し、デバイスから応答を取得しようとしています。

注:この場合、IDENTIFY DEVICE(0xEC)コマンドを送信します。デバイスは512バイトのデータブロックで応答します。(特に、ワード119のビット0(デバイスによるコマンドのサポートTRIM)に関心があります)。

CreateFileデバイスを開くために使用する必要があることを知っています。

しかし、この後、私は何をすべきかについて悩まされています。

0xECを使って送ることを考えました[DeviceIoControl][4]

しかし、これは完全に間違っています。DeviceIoControlに送信されるIoControlCodeは、マクロを使用して構築された有効なIO_CTLである必要があります。

SDKを見ると、有効なディスク管理制御コードがいくつかあります。例:

  • IOCTL_DISK_CREATE_DISK
  • IOCTL_DISK_GET_DRIVE_GEOMETRY
  • IOCTL_DISK_GET_DRIVE_GEOMETRY_EX
  • IOCTL_DISK_GET_PARTITION_INFO
  • IOCTL_STORAGE_QUERY_PROPERTY

しかし、それらのどれもIDENTIFY DEVICEコマンドではなく、それが返すものは何でも返しません。

したがって、コマンドを送信するための「生の」方法を使用する必要があると思います。


周りを検索して、文書化されていないIOCTLに出くわしました

これは、IOCTLの断片を分解すると、次のことを意味します。

inputBufferしかし、何を含める必要があるか、そのサイズ、何を含めるか、または必要なものについてのドキュメントはどこにもありませんoutputBufferfunctionCodeまた、 34(0x22)が何であるかを理解することもできません。


私の質問:生のATAコマンド(0xECなど)をATAデバイスに送信し、その応答を読み取るにはどうすればよいですか?

も参照してください


回答ピース

読み取り/書き込みアクセスでドライブを開きます。

IO制御コードATA_PASS_THROUGH_EXで使用する入力バッファーとして構造を設定します。IOCTL_ATA_PASS_THROUGH

ドライブからの予想される512バイトの応答を保持するように出力バッファを設定します。

電話DeviceIoControl

ファイルハンドルを閉じます。

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

android - ioctlLOOP_SET_FDが失敗しました

ioctlLOOP_SET_FDが失敗しました

私はすでに同様の問題について尋ねていますが、ここにもう少し詳細を書きました

androidでubuntuを実行するために、rootstock rootstock -f kty1104-ThinkPad-Z60t -l kty1104 -p 1 --imagesize 2047M --notarball --seed linux-image-omap、lxde、build-essential、 openssh-server、tightvncserver、x11-xserver-utils

このimgは、sudo mount -o loop、noatime -t ext2 /home/kty1104/ubuntu.img / mnt sudo mount -t proc proc / mnt / proc chroot / mnt / bin/bashによってubuntuPCでchrootできます。

しかし、Androidでこのmount〜chrootコマンドを実行しようとすると、ioctl LOOP_SET_FDが失敗しました。マウントコマンドのファイル番号が正しくありません。chrootを強制すると、「セグメント障害」と表示されます。

問題はルートストックコマンドから来ていると思います誰かが私を助けることができますか?

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

c++ - C++ で open と i2c を使用する

私はそれを認識し、cpp オブジェクト内では機能open()ioctl()ません。関数内で呼び出された場合は操作を実行できmain()ますが、クラス内では実行できません。ファイル システム呼び出しを行う別のオブジェクトを持つメイン ループで実行されているオブジェクトがあります。

したがって、基本的にメインループで開くことができます(ポインターの3を取得し、ioctl成功します)。しかし、オブジェクトでそれを行うと、open に対して 0 が返され (これはおそらくエラーではありません)、ioctl は失敗します。

ios::で動作しないため、 iostream オプションを使用できないことはわかっていますioctl。cpp オブジェクト内で通常の ioctl を機能させるにはどうすればよいですか?

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

c - SIOCSIFADDRioctlを使用してIPアドレスを設定します

LinuxでIOCTLインターフェイスを使用してIPアドレスを取得および設定しようとしています。私はそれをうまく取得して設定することができます。IPアドレスを設定すると ifconfig eth0、適切なIPアドレスが表示されますが、システムが切断されます。つまり、システムはpingできません。これがIPアドレスを設定するための私のコードです。何か足りないものがあれば教えてください。

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

unix - AIXはSIOCGLIFCONFをサポートしていますか?

IPv4でネットワークアダプタのプロパティをプローブするには、SIOCGIFONF、SIOCGIFNETMASKなどを使用できます。HP-UXおよびSolarisでは、IPv6に相当するものはSIOCGLIFONF、SIOCGLIFNETMASKです。

AIXはこれらのioctl(おそらくAPARを使用)をサポートしていますか、それとも別の名前で呼ばれていますか?

標準ドキュメントへのポインタが役立ちます-グーグルで検索しましたが、何も見つかりませんでした。