Nios® V プロセッサー・ソフトウェア開発者ハンドブック

ID 743810
日付 7/08/2024
Public
ドキュメント目次

16.1.1.75. ioctl()

プロトタイプ

int ioctl (int fd, int req, void* arg)

一般的な呼び出し元

C/C++ プログラム

デバイスドライバー

スレッドセーフ

説明を参照してください。

ISRから利用可能

いいえ

インクルード

<sys/ioctl.h>

説明

ioctl() 関数を使用すると、アプリケーション・コードでドライバー固有の方法でデバイスドライバーの I/O 機能を操作できます。 この関数は、標準の UNIX ioctl() 関数と同等です。入力引数 fd はデバイスが操作するオープン ファイル・ディスクリプターで、req は操作リクエストを定義する列挙で、arg の解釈はリクエスト固有です。

ファイル・サブシステムの場合、ioctl() は、適切なデバイス・ドライバーの ioctl() 関数 (ドライバーのalt_dev 構造体にレジスターされている) に制御を直接渡すラッパー関数です。

デバイスの場合、ioctl() は、デバイス ドライバーを呼び出すことなく、TIOCEXCL および TIOCNXCL リクエストを内部で処理します。 これらのリクエストは、排他的アクセスのためにデバイスをロックおよび解放します。TIOCEXCL および TIOCNXCL 以外のリクエストの場合、ioctl() はデバイスドライバーのioctl() 関数に制御を渡します。

ioctl() への呼び出しは、操作されるドライバーによって提供される ioctl() の実装がスレッドセーフである場合にのみスレッド セーフになります。

fd パラメーターの有効な値は、stdoutstdinstderr、または open() の呼び出しから返される任意の値です。

戻り値

戻り値の解釈はリクエストによって異なります。 呼び出しが失敗した場合、エラーの原因を示す errno が設定されます。