_fileno

ストリームに関連付けられているファイル記述子を取得します。

構文

int _fileno(
   FILE *stream
);

パラメーター

stream
FILE 構造体へのポインター。

戻り値

_fileno はファイル記述子を返します。 エラーの戻り値はありません。 stream で開いているファイルを指定しない場合、結果は未定義です。 stream の場合、「NULL_filenoパラメーターの検証」で説明されているように、無効なパラメーター ハンドラーを呼び出します。 実行の継続が許可された場合、この関数は -1 を返し、errnoEINVAL に設定します。

これらのエラー コードやその他のエラー コードについては、「errno_doserrno_sys_errlist、および _sys_nerr」を参照してください。

Note

stdout または stderr が出力ストリームに関連付けられていない場合 (コンソール ウィンドウがない Windows アプリケーションなど)、返されるファイル記述子は -2 です。 以前のバージョンでは、返されるファイル記述子は -1 でした。 この変更で、アプリケーションはこの条件をエラーと区別できるようになりました。

解説

_fileno ルーチンは、stream に現在関連付けられているファイル記述子を返します。 このルーチンは、関数とマクロの両方として実装されています。 いずれかの実装の選択については、関数とマクロの選択に関するおすすめを参照してください

既定では、この関数のグローバル状態の適用対象は、アプリケーションになります。 この動作を変更するには、「CRT のグローバル状態」を参照してください

必要条件

機能 必須ヘッダー
_fileno <stdio.h>

互換性の詳細については、「 Compatibility」を参照してください。

// crt_fileno.c
// This program uses _fileno to obtain
// the file descriptor for some standard C streams.
//

#include <stdio.h>

int main( void )
{
   printf( "The file descriptor for stdin is %d\n", _fileno( stdin ) );
   printf( "The file descriptor for stdout is %d\n", _fileno( stdout ) );
   printf( "The file descriptor for stderr is %d\n", _fileno( stderr ) );
}
The file descriptor for stdin is 0
The file descriptor for stdout is 1
The file descriptor for stderr is 2

関連項目

ストリーム入出力
_fdopen, _wfdopen
_filelength, _filelengthi64
fopen, _wfopen
freopen, _wfreopen