_fileno_fileno

ストリームに関連付けられているファイル記述子を取得します。Gets the file descriptor associated with a stream.

構文Syntax

int _fileno(
   FILE *stream
);

パラメーターParameters

一連stream
FILE 構造体へのポインター。Pointer to the FILE structure.

戻り値Return Value

_fileno は、ファイル記述子を返します。_fileno returns the file descriptor. エラーの戻り値はありません。There's no error return. ストリームが開いているファイルを指定していない場合、結果は未定義になります。The result is undefined if stream does not specify an open file. Stream がNULLの場合は、「パラメーターの検証」で説明されているように、 _filenoによって無効なパラメーターハンドラーが呼び出されます。If stream is NULL, _fileno invokes the invalid parameter handler, as described in Parameter Validation. 実行の継続が許可された場合、この関数は -1 を返し、errnoEINVAL に設定します。If execution is allowed to continue, this function returns -1 and sets errno to EINVAL.

エラー コードの詳細については、「_doserrno、errno、_sys_errlist、および _sys_nerr」を参照してください。For more information about these and other error codes, see _doserrno, errno, _sys_errlist, and _sys_nerr.

注意

Stdoutまたはstderrが出力ストリームに関連付けられていない場合 (たとえば、コンソールウィンドウがない Windows アプリケーションで)、返されるファイル記述子は-2 です。If stdout or stderr is not associated with an output stream (for example, in a Windows application without a console window), the file descriptor returned is -2. 以前のバージョンでは、返されるファイル記述子は -1 でした。In previous versions, the file descriptor returned was -1. この変更で、アプリケーションはこの条件をエラーと区別できるようになりました。This change allows applications to distinguish this condition from an error.

解説Remarks

_Filenoルーチンは、現在ストリームに関連付けられているファイル記述子を返します。The _fileno routine returns the file descriptor currently associated with stream. このルーチンは、関数とマクロの両方として実装されています。This routine is implemented both as a function and as a macro. 実装の使い分けについては、「関数とマクロの使い分け」を参照してください。For information about choosing either implementation, see Choosing Between Functions and Macros.

既定では、この関数のグローバル状態はアプリケーションにスコープが設定されています。By default, this function's global state is scoped to the application. これを変更するには、「 CRT でのグローバル状態」を参照してください。To change this, see Global state in the CRT.

要件Requirements

関数Function 必須ヘッダーRequired header
_fileno_fileno <stdio.h>

互換性について詳しくは、「 Compatibility」をご覧ください。For more compatibility information, see Compatibility.

Example

// 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

関連項目See also

ストリーム入出力Stream I/O
_fdopen、_wfdopen_fdopen, _wfdopen
_filelength、_filelengthi64_filelength, _filelengthi64
fopen、_wfopenfopen, _wfopen
freopen、_wfreopenfreopen, _wfreopen