http://man7.org/linux/man-pages/man3/stdout.3.html
最后一行究竟是什么意思,“但是所有旧流都变得难以接近了”?据我所知,所有继承的句柄仍然很好。我错了吗?
答案 0 :(得分:2)
文件描述符只是由操作系统管理的整数。它们不受exec
的影响。另一方面,流(即FILE *
)是由库管理的缓冲区和状态信息的集合。它们充当文件描述符之上的层。调用exec
时,加载新图像时将清除与流关联的所有缓冲区和状态信息。他们刚走了。任何挂起的缓冲数据或状态信息都将丢失。
答案 1 :(得分:1)
我认为“旧流”意味着“文件*”结构。
在exec之后,用fopen打开的所有流(FILE *)将关闭,并且将继承所有文件描述符(int)。 您可以通过向它们添加FD_CLOEXEC来更改文件描述符的继承行为。