Unix/Linux下文件基本操作
时间:2014-11-18 15:06来源:未知 作者:众诚志联撰 点击:次
比较重要的设备文件有三个,它们是/dev/console、/dev/tty 和 /dev/null 1,/dev/console设备:系统控制台,出错和诊断信息通常会被发送到这个设备。 2,/dev/tty设备:进程控制终端的一个假名。 3,/dev/null:空设备,所以写向这个设备的输出都将被丢弃。而
比较重要的设备文件有三个,它们是/dev/console、/dev/tty 和 /dev/null
1,/dev/console设备:系统控制台,出错和诊断信息通常会被发送到这个设备。
2,/dev/tty设备:进程控制终端的一个假名。
3,/dev/null:空设备,所以写向这个设备的输出都将被丢弃。而读这个设备会立刻返回一个文件尾标志。
文件的系统调用函数:
文件描述符:
0:标准输入;
1:标准输出;
2:标准错误;
open系统调用:
建立一条到文件或者设备的访问路径,如果操作成功,它将返回一个文件描述符,后续的read,write等系统调用就将使用该文件描述符对打开的那个文件进行操作。
int open (const char *path,int oflags);
int open (const char *path,int oflags,mode_t mode);
oflags参数是通过把要求的文件访问模式与其它可选模式按位or得到的。
文件访问模式:O_RDONLY(只读)O_WRONLY(只写)O_RDWR(读写)
其它可选模式:
O_APPEND(把写入的数据追加在文件的末尾)
O_TRUNC(把文件的长度设置为0,丢弃其中现有的内容)
O_CREAT(按mode中给出的模式创建文件)
O_EXCL(与o_creat一起使用,如果文件存在,open操作失败)
mode参数:
S_IRUSR:读权限,文件属主
S_IWUSR:写
S_IXUSR:执行权限,文件属主
S_IRGRP:读
S_IWGRP:写
S_IXGRP:执行权限,文件所在分组
S_IROTH:读
S_IWOTH:写
S_IXOTH:执行权限,其它用户
如:
open ("myfile", O_CREAT, S_IRUSR | S_IXOHT);
创建一个名为myfile的文件,文件的属主拥有它的读操作权限,其它用户只能执行。Mode会受umask决定。(chmod umask myfile)
close系统调用:
终止一个文件描述符fildes与它文件之间的关联。
|