Share via


_fileno

更新 : 2007 年 11 月

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

int _fileno( 
   FILE *stream 
);

パラメータ

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

戻り値

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

エラー コードの詳細については、「_doserrno、errno、_sys_errlist、および _sys_nerr」を参照してください。

zs6wbdhx.alert_note(ja-jp,VS.90).gifメモ :

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

解説

_fileno ルーチンは、stream に現在関連付けられているファイル記述子を返します。このルーチンは、関数およびマクロとして実装されています。実装の選択の詳細については、「関数またはマクロの選択に関する推奨事項」を参照してください。

必要条件

関数

必須ヘッダー

_fileno

<stdio.h>

互換性の詳細については、「C ランタイム ライブラリ」の「互換性」を参照してください。

使用例

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

.NET Framework の相当するアイテム

System::IO::FileStream::Handle

参照

参照

ストリーム入出力

_fdopen、_wfdopen

_filelength、_filelengthi64

fopen、_wfopen

freopen、_wfreopen