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

ID 743810
日付 10/31/2022
Public

このドキュメントの新しいバージョンが利用できます。お客様は次のことを行ってください。 こちらをクリック 最新バージョンに移行する。

ドキュメント目次

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

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

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