9

如果我正在编写一个用 STDOUT 的副本覆盖 STDERR 的 Perl 脚本,但我从不恢复文件句柄,那么在脚本执行结束时会发生什么?我找不到任何警告实际发生或未发生的事情。

我可能被误导了,但感谢您的耐心等待。

4

1 回答 1

12

当一个进程退出时,内核会恢复所有使用的资源。这包括所有简单关闭的文件描述符。如果存在应用程序级缓冲区,则该缓冲区中的数据可能尚未写入内核,但否则在退出之前保持文件描述符打开是没有风险的。

如果您的 Perl 脚本以使用exec启动另一个进程结束,则该进程将继承所有文件描述符(除了在 exec 上标记为关闭的那些)。

于 2013-01-02T16:51:46.353 回答