查看fopen
的手册,我无法得到这个问题的明确答案。
FILE *fopen(const char *path, const char *mode);
我理解
fopen
返回一个文件指针以便进行流操作,但是也会创建一个文件描述符吗?我想确保每个文件描述符都包含标志 FD_CLOEXEC
。如果确实从 fopen
创建了文件描述符,那么在没有“fd”可用作输入时使用 fnctl()
的最佳方法是什么?谢谢。
查看fopen
的手册,我无法得到这个问题的明确答案。
FILE *fopen(const char *path, const char *mode);
fopen
返回一个文件指针以便进行流操作,但是也会创建一个文件描述符吗?我想确保每个文件描述符都包含标志 FD_CLOEXEC
。如果确实从 fopen
创建了文件描述符,那么在没有“fd”可用作输入时使用 fnctl()
的最佳方法是什么?在Unix系统中(我假设你使用的是Unix系统,因为你提到了fcntl
),实际上会打开一个文件描述符,因为fopen(3)
最终会调用open(2)
。您可以通过fileno(3)
获取该文件描述符。