Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/64.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C stdin、stdout、stderr是如何关闭的?_C - Fatal编程技术网

C stdin、stdout、stderr是如何关闭的?

C stdin、stdout、stderr是如何关闭的?,c,C,退出程序时,这些文件*对象如何关闭和释放?来自C99§7.20.4.3/3: 接下来,将刷新所有具有未写入缓冲数据的开放流,all 开放流是封闭的,所有文件都是由tmpfile函数创建的 被移除 (与C99对齐)更好地说明了这一点: 然后,exit()函数应使用未写入的 缓冲数据并关闭所有打开的流 它们由自动链接到您的程序的C运行时代码关闭-调用main()函数的代码在main()返回后也会调用exit()。这是否意味着它会关闭用户可能打开的任何其他流?它是怎么知道这些的?@Paul它知道,因为

退出程序时,这些
文件*
对象如何关闭和释放?

来自C99§7.20.4.3/3:

接下来,将刷新所有具有未写入缓冲数据的开放流,all 开放流是封闭的,所有文件都是由tmpfile函数创建的 被移除

(与C99对齐)更好地说明了这一点:

然后,exit()函数应使用未写入的 缓冲数据并关闭所有打开的流


它们由自动链接到您的程序的C运行时代码关闭-调用main()函数的代码在main()返回后也会调用exit()。

这是否意味着它会关闭用户可能打开的任何其他流?它是怎么知道这些的?@Paul它知道,因为stdio自己记账
fopen
的作用不仅仅是返回
文件*