_fileno
ストリームに関連付けられているファイル記述子を取得します。
構文
int _fileno(
FILE *stream
);
パラメーター
stream
FILE
構造体へのポインター。
戻り値
_fileno
はファイル記述子を返します。 エラーの戻り値はありません。 stream
で開いているファイルを指定しない場合、結果は未定義です。 ストリームがNULL
されている場合、パラメーターの検証で説明されているように、_fileno
は無効なパラメーター ハンドラー呼び出します。 実行の継続が許可された場合、この関数は -1 を返し、errno
を EINVAL
に設定します。
これらのエラー コードやその他のエラー コードについては、「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