close函数用于关闭一个已经打开的文件。函数原型如下:
#include <unistd.h>
int close(int filedes);
返回值:若成功则返回 0,出错则返回 -1
参数:filedes是文件标识符,是通过open函数获得的文件标识符。
说明:
当一个进程终止时,内核会自动关闭它所有打开的文件。所以close函数可以不用。不过最好在完成文件的操作后及时关闭文件,以释放文件,否则其他需要操作该文件的进程会因不能打开文件而失败。
实例 x3.5.1.c
#include <fcntl.h>
#include <stdio.h>
int main(void)
{
char pathname[] = "/tmp/myfile";
int fileid;
fileid = open(pathname, O_RDWR | O_CREAT);/*打开文件*/
if (fileid < 0 ) {
printf("open error for %s\n", pathname);
return 1;
} else {
printf("%s open success. fileid is %d\n", pathname, fileid);
}
if (close(fileid) != 0) /*关闭文件 */
printf("close error for %s\n", pathname);
else
printf("%s closed success.\n", pathname);
return 0;
}
编译与执行:
[root@localhost unixc]# cc x.3.5.1.c
[root@localhost unixc]# ./a.out
/tmp/myfile open success. fileid is 3
/tmp/myfile closed success.
[root@localhost unixc]#