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