Bashでioctl()を実行するツールはありますか?

Bashでioctl()を実行するツールはありますか?

ioctl()bashから電話をかけようとしています。これはCで簡単に実行できるため、ツール(https://github.com/jerome-pouiller/ioctl)はこの機能をラップします。

ただし、これを行うとツールも一緒にデプロイする必要があるため、スクリプトのデプロイがより困難になります。

同じタスクを実行できるDebian APTリポジトリにすでに含まれている他のツールはありますか?では、apt installスクリプトで簡単な作業を実行できますか?

ベストアンサー1

システムioctlコールが取るパラメータのリストは、要求によって大きく異なります。多くの要求は、構造化データを入力として使用するか、構造化データを出力として生成します。これにより、シェルで使用するのが厄介になります。もちろん、特定のioctlリクエストや特定のセット(stty端末ioctlを使用するなど)を中心とするいくつかのコマンドがありますが、汎用コマンドではありません。リンクされたツールを使用すると、バイナリデータを内外に渡すことができますが、シェルでそのデータを操作することは困難です。

PerlやPythonのようなより高いレベルのスクリプト言語でプログラムを書くことをお勧めします。これはあいまいなツールを必要としないため、展開が簡単になります。ほとんどのUnixファミリーシステムにはPerlがあり、ほとんどの場合はPythonもあります。

Perlには事前定義済みioctl機能そして、要求された値の少なくともいくつかのシンボル名へのアクセスを提供しますsys/ioctl.ph。利用可能なシンボル名をリストする方法がわかりません。追加の入力/出力はスカラー(バイト文字列など)として提供されます。

Pythonではioctl機能fnctlモジュールから。これtermiosモジュールは、端末関連の ioctl のいくつかのシンボル名を定義します。追加の入出力は整数またはバイト文字列として渡すことができます。

Pythonには別のアプローチがあるかもしれません。ctypes基準寸法、これは高度な言語でC関数を呼び出す非常に良い方法です。呼び出すioctlが構造体を入力または出力として使用するように定義されている場合は非常に良いです。なぜなら、ctypesを使用すると、データ型のサイズ、パディング、単語について心配することなく、Cコンパイラがレイアウトする方法で構造体にアクセスできるからです。区間順など

おすすめ記事