“开放式”标准是否应该关闭? < >在C或C++程序中,我可以使用重定向输出,即STDUT文件描述符到另一个文件,或者丢弃它,将文件描述符重新打开到/DEV/NULL或另一个接收器。

“开放式”标准是否应该关闭? < >在C或C++程序中,我可以使用重定向输出,即STDUT文件描述符到另一个文件,或者丢弃它,将文件描述符重新打开到/DEV/NULL或另一个接收器。,c,file-descriptor,fclose,freopen,C,File Descriptor,Fclose,Freopen,问题是:如果我这样做,我应该在程序结束执行之前明确关闭文件描述符吗?为什么?在哪个平台上?如果我不关闭一个文件描述符,通常和在这个特定的情况下会发生什么 我应该在程序结束执行之前明确关闭文件描述符吗 从: freopen函数打开名称为所指向字符串的文件 并将流指向的流与其关联。这个 原始流(如果存在)已关闭 因此,不必关闭原始文件*。不过,你可能应该关闭你从freopen电话中得到的那个。顺便说一句,这些都是文件*变量,而不是文件描述符 为什么? 因为文件上说你不必这么做 在哪个平台上 根据C标

问题是:如果我这样做,我应该在程序结束执行之前明确关闭文件描述符吗?为什么?在哪个平台上?如果我不关闭一个文件描述符,通常和在这个特定的情况下会发生什么

我应该在程序结束执行之前明确关闭文件描述符吗

从:

freopen函数打开名称为所指向字符串的文件 并将流指向的流与其关联。这个 原始流(如果存在)已关闭

因此,不必关闭原始文件*。不过,你可能应该关闭你从freopen电话中得到的那个。顺便说一句,这些都是文件*变量,而不是文件描述符

为什么?

因为文件上说你不必这么做

在哪个平台上

根据C标准的定义,正确实现freopen3的任何组件

如果我不关闭一个文件描述符,通常和在这个特定的情况下会发生什么

当程序退出时,操作系统会清理程序使用的资源


为什么要关闭从freopen返回的文件指针?