您的位置:首页 > 其它

fileno函数

2013-07-23 23:09 183 查看
        函数名称:fileno(在VC++6.0下为_fileno)

  函数原型:int _fileno( FILE *stream );

  函数功能:fileno()用来取得参数stream指定的文件流所使用的文件描述符

  返回值:某个数据流的文件句柄

  头文件:stdio.h

  相关函数:open,fopen,fclose


程序示例

  先看MSDN上的例子:

  #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 1The file descriptor for stderr is 2程序示例2 #include <stdio.h>

  int main(void)

  {

  FILE *fp;

  int fd;

  fp = fopen("/etc/passwd", "r");

  fd = fileno(fp);

  printf("fd = %d\n", fd);

  fclose(fp);

  return 0;

  }


fileno函数的实现

  #define fileno(__p) ((__p)->_file)

  因为FILE 结构体定义为

  类似

  typedef struct {

  unsigned char *_ptr;

  int _cnt;

  unsigned char *_base;

  unsigned char *_bufendp;

  short _flag;

  short _file;

  int __stdioid;

  char *__newbase;

  void *_lock;

  } FILE;

  其中 _file就是文件描述符。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: