【发布时间】:2018-08-29 06:18:57
【问题描述】:
在大多数现代编程语言中,程序员不需要关闭stdin,stdout,stderr。这是否意味着操作系统通常会处理stdin、stdout、stderr 的关闭?
或者例如在java中,jvm会在运行Java程序exit时关闭stdin、stdout、stderr?
可能会有一些老程序员提到的例外情况,因此我将语言范围缩小到仅 Java、C、C++
【问题讨论】:
-
太宽泛了,也许你最好选择一种操作系统和一种语言
-
C++ 库将在程序正常终止之前刷新这些流缓冲的所有内容。该进程继承了底层文件,因此无需关闭任何内容,但从技术上讲,操作系统将在进程终止时释放该进程使用的所有资源。
-
@user463035818 我敢打赌这不依赖于单一语言或操作系统
-
我敢肯定,至少,关于 C++ 库刷新输出流的部分隐藏在构成当前 C++ 标准的 1400 多个页面中的某个地方。但这是一个很小的细节,也许,如果你解释了你需要“授权答案”的真正原因,那么有人可能会有足够的动力去查它。
标签: java c++ c io operating-system