windows 文件描述符

在类Unix系统下用文件描述符descriptor来访问文件。文件描述符是非负整数。打开现存文件或新建文件时,内核会返回一个文件描述符。读写文件也需要使用文件描述符来指定待读写的文件。如下:
    int fileDescripter = fopen("fileName",O_RDONLY);
Windows下一般(最基本的)用fopen访问文件。
    FILE * fp = fopen("fileName","r");
但是他的返回值是一个结构体的文件句柄。
有时我们需要将linux程序移植转换到windows下,需要获得文件描述符,其实windows文件描述符就是结构体FILE的_file成员。
struct _iobuf {  
      char *_ptr; 
      int _cnt; 
      char *_base; 
      int _flag; 
      int _file;//文件描述符
      int _charbuf; 
      int _bufsiz;
      char *_tmpfname;
  };  
typedef struct _iobuf FILE;  
比如我要用到protobuf的FileInputStream,他的构造函数有一个参数就是文件描述符,这样直接用FILE的_file成员即可。如下:
FILE *fp = fopen("fileName","r");
    int fileDescripter = fp->_file;
    google::protobuf::io::FileInputStream fin(fileDescripter);
还没在网上搜索到这个。
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值