gpt4 book ai didi

linux - 关闭 STDOUT 如何影响 printf

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:34:45 27 4
gpt4 key购买 nike

如果有人像这样在它的文件描述符表中关闭进程的 STDOUT:

close(STDOUT);

然后打开一个文件进行读/写:

int ​fd = open(​"myFile"​, O_RDWR);

然后使用 printf:

printf("hello");

我知道它不会出现在屏幕上,但它会打印在文件中吗?或者他是否必须使用 fprintf 或 write 系统调用?

最佳答案

来自 open 的手册页:

成功调用返回的文件描述符将是当前未为进程打开的编号最小的文件描述符。

当您关闭 STDOUT 的文件描述符时,后续的 open 系统调用会将 stdout 的 fd 分配给新文件。 Printf 只是发送到 fd,它是否是 stdout 并不重要。所以这种情况下的 printf 会将输出转储到“myfile”

关于linux - 关闭 STDOUT 如何影响 printf,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50924455/

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