#include <fcntl.h>
int main()
{
open("file",O_CREAT,S_IRUSR | S_IWGRP);
exit(0);
}
执行这段代码将在当前目录下创建一个名为 file 的文件,该文件对文件属主可读,对文件所在组可写,用 ls -l 命令查看如下:
可以看到有一个名为 file 的文件,该文件就是使用 open 系统调用创建的,文件的权限为文件属主可读,文件所在组可写。
2.4 close 系统调用
系统调用 close 可以用来终止文件描述符 fildes 与其对应文件之间的关联。当 close 系统调用成功时,返回 0,文件描述符被释放并能够重新使用;调用出错,则返回 -1。
#include <unistd.h>
int close(int fildes);
2.5 ioctl 系统调用
系统调用 ioctl 提供了一个用于控制设备及其描述符行为和配置底层服务的接口。终端、文件描述符、套接字甚至磁带机都可以有为它们定义的 ioctl。
#include <unistd.h>
int ioctl(int fildes,int cmd,...);
ioctl 对描述符 fildes 引用的对象执行 cmd 参数中给出的操作。