fopen函数是否会创建文件描述符?

9

查看fopen的手册,我无法得到这个问题的明确答案。

FILE *fopen(const char *path, const char *mode);

我理解 fopen 返回一个文件指针以便进行流操作,但是也会创建一个文件描述符吗?我想确保每个文件描述符都包含标志 FD_CLOEXEC。如果确实从 fopen 创建了文件描述符,那么在没有“fd”可用作输入时使用 fnctl() 的最佳方法是什么?
谢谢。
1个回答

17

在Unix系统中(我假设你使用的是Unix系统,因为你提到了fcntl),实际上会打开一个文件描述符,因为fopen(3)最终会调用open(2)。您可以通过fileno(3)获取该文件描述符。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接