【问题标题】:fileno cast FILE to descriptor Cfileno 将 FILE 转换为描述符 C
【发布时间】:2013-02-19 17:51:29
【问题描述】:

有没有办法将 int 类型的变量(文件描述符)转换为 C 中的 FILE 类型?我有一个开放的管道 fd,我想使用需要 FILE 的函数。

【问题讨论】:

    标签: c file-descriptor


    【解决方案1】:

    你不能投射它,但你可以打电话给fdopen(3),这正是你想要的:

    FILE *
    fdopen(int fildes, const char *mode);
    

    fdopen() 函数将流与现有文件描述符 fildes 相关联。流的模式必须与 文件描述符。当流通过 fclose(3) 关闭时,fildes 是 也关门了。

    【讨论】:

    • 谢谢 Carl,那么 fdopen 最终会在 fd 上进行任何系统调用,还是会简单地返回一个 FILE 流?
    • @user1944224,这可能取决于实现。
    【解决方案2】:

    在 POSIX 系统上,您可以使用 fdopen 构造一个引用文件描述符的 FILE *。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-03-11
      • 1970-01-01
      • 2012-08-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多