Linux 关闭STDOUT如何影响printf
如果有人在进程的文件描述符表中关闭进程的STDOUT,如下所示:Linux 关闭STDOUT如何影响printf,linux,file,unix,operating-system,stdout,Linux,File,Unix,Operating System,Stdout,如果有人在进程的文件描述符表中关闭进程的STDOUT,如下所示: close(STDOUT); 然后打开一个要读/写的文件: 然后使用printf: printf("hello"); 我知道它不会出现在屏幕上,但它会被打印在文件中吗?或者他必须使用fprintf或写入系统调用吗?来自open的手册页: 成功调用返回的文件描述符将是进程当前未打开的编号最低的文件描述符。 当您关闭STDOUT的文件描述符时,后续的开放系统调用将把STDOUT的fd分配给新文件。Printf只发送给fd,不管
close(STDOUT);
然后打开一个要读/写的文件:
然后使用printf:
printf("hello");
我知道它不会出现在屏幕上,但它会被打印在文件中吗?或者他必须使用fprintf或写入系统调用吗?来自open的手册页: 成功调用返回的文件描述符将是进程当前未打开的编号最低的文件描述符。
当您关闭STDOUT的文件描述符时,后续的开放系统调用将把STDOUT的fd分配给新文件。Printf只发送给fd,不管它是否是标准输出。因此,本场景中的printf会将输出转储到“myfile”谢谢您的回答
printf("hello");