gpt4 book ai didi

关闭并重新打开管道文件描述符以在 c 中写入

转载 作者:行者123 更新时间:2023-11-30 14:50:11 26 4
gpt4 key购买 nike

我有一个问题,如果我在写入文件描述符后关闭它会发生什么(例如fd[1]在管道fd之后> ),然后再次打开进行写入。数据会被覆盖并且之前的所有数据都会消失还是会从第一次写入后停止的终点继续写入?我使用带有文件描述符的系统调用 open(),没有其他参数。

最佳答案

如果关闭管道的任一文件描述符,则永远无法重新打开它。没有名字可以重新打开它。即使使用 /dev/fd 文件系统,一旦关闭文件描述符,文件系统中相应的条目就会被删除——你就被骗了。

如果您可能需要再次使用管道,请不要关闭它。

在关闭之前考虑是否复制管道;然后,您可以直接使用副本或将副本复制回原始(管道)文件描述符,但这是作弊;您实际上并没有关闭对管道文件描述符的所有引用。 (请注意,由于关闭,管道另一端的进程不会收到 EOF 指示 - 仍然有一个打开的文件描述符引用该管道。)

关于关闭并重新打开管道文件描述符以在 c 中写入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49108976/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com