【发布时间】:2018-08-30 00:24:54
【问题描述】:
来自 APUE
每个标准 I/O 流(即每个
FILE对象)都有一个关联的文件描述符。
在一个程序中,多个FILE对象可以共享同一个文件描述符吗?
如果是,是否通过使用相同的给定文件描述符多次调用fdopen() 来完成,每次都返回指向不同FILE 对象的指针?
如果我在一个指向给定FILE对象的指针上flcose(),如果有另一个FILE对象共享同一个文件描述符,那么FILE对象的文件描述符是否仍然存在并连接到该文件?
谢谢。
【问题讨论】:
-
您从不使用
FILE,而只使用FILE*,它只是一个指针,因此可以轻松复制。给定FILE *f,您可以使用FILE *g = f创建第二个指向同一描述符的对象,但您只能在其中一个上调用fclose。 -
我不确定你所要求的是否是你真正想要的......
-
另见 Stevens 对
dup、dup2和朋友的讨论。