我正在尝试使用mkstemp()
,该函数返回文件描述符,但我想通过fprintf()
生成格式化输出。是否有一种简单的方法将mkstemp()
提供的文件描述符转换为适用于fprintf()
的 FILE *
结构?
fileno()
函数:http://linux.die.net/man/3/fileno - Lee NethertonO_NONBLOCK
)打开了fd
,那么在使用fdopen
打开它并设置新标志后,原来的标志会发生什么?它们会被异或在一起还是被替换? - xealitsfdopen
会有什么不好的影响吗? - phil294FILE* f = fdopen(d, "w");
man fdopen 输出:
概要
#include <stdio.h>
FILE *
fdopen(int fildes, const char *mode);
fdopen()
函数将现有文件描述符fildes
与流相关联。流的模式必须与文件描述符的模式兼容。当通过fclose(3)
关闭流时,fildes
也会关闭。
没有标准的方法来实现这个(或反过来)因为C标准对文件描述符没有任何规定。你所使用的特定平台可能会提供这样的机制,也可能不会。
mkstemp
暗示着在这种情况下接受非标准解决方案。然而,在这种情况下,他应该添加 posix
标签(我看到已经添加了)。 - Emerick Rogul