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

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

16.1.1.56. fcntl()

プロトタイプ

int fcntl(int fd, int cmd)

一般的な呼び出し元

C/C++ プログラム

スレッドセーフ

いいえ

ISRから利用可能

いいえ

インクルード

<unistd.h>
<fcntl.h>

説明

fcntl() 関数は、標準の fcntl() システムの呼び出しに限定された実装であり、開いているファイル・ディスクリプターに関連付けられたフラグの状態を変更できます。通常、これらのフラグはopen() の呼び出し中に設定されます。この関数の主な用途は、デバイスの状態をブロックから非ブロックに変更することです (この機能をサポートするデバイスドライバーの場合)。

入力引数 fd は、操作されるファイル・ディスクリプターです。cmd は実行するコマンドで、F_GETFL (フラグの現在の値を返す) またはF_SETFL (フラグの値を設定) のいずれかになります。

戻り値

cmdF_SETFL の場合、引数 arg はフラグの新しい値になります。それ以外の場合、arg は無視されます。fcntl() の呼び出しによって更新できるのは、フラグ O_APPEND および O_NONBLOCK のみです。他のすべてのフラグは変更されません。戻り値は、成功した場合は 0、それ以外の場合は -1 です。

cmdF_GETFL の場合、戻り値はフラグの現在の値です。

エラーが発生した場合は、-1 が返されます。 エラーが発生した場合、原因を示す errno が設定されます。