c - 为什么 fileno 无法返回有效的描述符?

标签 c file file-io stdio

我正在用 funopen 打开一个流

FILE *fin = funopen(cookie, readfn, NULL, NULL, closefn);
if (fin == NULL)
{
    handle_error();
    return -1;
}
int fdin = fileno(fin);

对 funopen 的调用成功,但 fileno(fin) 返回 -1

如何获取文件描述符?谢谢。

最佳答案

funopen 打开的FILE(顺便说一下,这不是任何标准的一部分;据我所知,它是BSD 扩展)没有底层文件描述符。它有 cookie 而不是。我不知道你想要文件描述符做什么,但你可能运气不好。

关于c - 为什么 fileno 无法返回有效的描述符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7140420/

相关文章:

C 基于用户输入的每行字符缩进

c++ - 条件变量 - 为什么在调用 pthread_cond_wait() 之前调用 pthread_cond_signal() 是一个逻辑错误?

在文件管理中检测到 c 堆栈粉碎

Python将对象属性写入文件

PHP FTP 错误 : 451 - Append/Restart not permitted

java - 在Java中以一定速率读取文件

matlab - 文件内容格式不同时如何使用 "csvread"?

c - 如何尽量减少系统调用次数?在C中

c# - 使用 C# 删除大量(>100K)文件,同时保持 Web 应用程序的性能?

c - 如何在Matlab代码中读取mex.c文件