私は、bashとプリミティブの基本ユーティリティのみを備えたシステムでioctl呼び出しを実行しようとしています。
C/Perl/pythonプログラムを書かずに、シェルスクリプトの/ devにある特定のデバイスファイルに対して任意のioctlコマンドを実行する方法はありますか? " magic_ioctl/dev/console 30 1 2 "は、" ioctl(open( "/ dev/console")、30、1、2); "を呼び出します。
私はこの目的のためにioctl
ツールを正確に書きました: https://github.com/jerome-pouiller/ioctl 。
現在、ioctl呼び出しに複数の引数を渡すことはできません。それが役立つ例はありますか?
ioctl(open("/dev/console"), 30, 1);
を呼び出す場合は、次のコマンドを実行できます。
ioctl /dev/console 30 -v 1
ただし、ほとんどのioctlでは、バッファーを割り当て、このバッファーへのポインターをioctl呼び出しの引数に渡します。この場合は、-v
。 ioctl
は、標準入出力のバッファーコンテンツを読み書きします。 ioctl
ioctl番号からバッファサイズと方向を推測してみてください。
最良のものは次のとおりです:ioctl
多くの(約2200)ioctl記号名を理解します。したがって、次のように呼び出すことができます。
ioctl /dev/video0 VIDIOC_QUERYCAP > video_caps
なぜPerl/c/pythonソリューションを拒否するのですか?これは、次のようにPerlの1行で作成できます。Perl -e require "sys/ioctl.ph"; ioctl(...);