close系统调用关闭一个打开的文件描述符,并将其释放回调用进程,供该进程继续使用。当一进程终止时,将自动关闭其已打开的所有文件描述符。
int close(int fd);
显式关闭不再需要的文件描述符往往是良好的习惯,会使代码后续修改的时候更具可读性,也更可靠。
文件描述符属于有限资源,因此文件描述符的关闭失败可能会导致一个进程将文件描述符资源消耗殆尽。
在编写需要长期运行并处理大量文件的程序时,比如shell或者网络服务软件,需要特别加以注意。像其他所有的系统调用一样,应对close的调用进行错误检查
if (close(fd) == –1)
exit(1);
这类错误有:
企图关闭一个未打开的文件描述符
或则两次关闭同一文件描述符
也能捕获特定文件系统在关系操作中诊断出的错误条件
这个系统调用还是十分简单的,就是要注意为了避免资源浪费,用完的时候及时关掉文件描述符。