在Unix C编程中,在进程退出之前显式关闭文件句柄是一种很好的做法,还是让操作系统关闭文件句柄从而避免不必要的代码?
通常会将两者中的哪一个视为首选替代方案?
例:
int main (int argc, char* argv[])
{
int sd;
sd = socket(...);
// Snip
close(sd); // Good or bad practice?
return 0;
}
Run Code Online (Sandbox Code Playgroud)
自己关闭它们被认为是一种好习惯.
可能是因为这是一个好习惯,如果你的程序增长并且在你完成使用特定的"文件"后一段时间内没有出现退出.
例外是stdin,stdout和stderr,你的进程没有打开.
顺便提一下,UNIX术语是"文件描述符".