VFS的系统调用
8.fcntl系统调用 调用的作用: 一是设置文件的访问标志,主要由open和fcntl两个调用实 现;另一个是对文件进行上锁,主要由chmod和fcntl调用 实现。 调用格式: int fcntl(int fd, int cmd, [long arg]); cmd为控制命令,说明所要实现的功能
VFS的系统调用
VFS的系统调用
1.open系统调用
mode是文件访问权限,分为文件所有者、文件用户组和其他用户:
S_IRUSR 读权限,文件主
S_IWUSR 写权限,文件主
S_IXUSR 执行权限,文件主 S_IRWXU 文件主,可读可写可执行 S_IRGRP 读权限,文件用户组
R:read W:write
VFS的系统调用
3.read系统调用 调用格式: int read(int fd,void *buf, size_t nbytes); fd为打开文件系统调用返回的文件标识符 buf为指定的缓冲区 nbytes为要读的字节数 所用头文件: #include <sys/types.h> #include <unistd.h>
int fd; char c; fd=open(argv[1],O_RDONLY); lseek(fd,10,SEEK_SET); while(read(fd,&c,1)==1)
putchar(c); }
VFS的系统调用
6.chown系统调用 调用的作用: 修改文件所有者的标识或组标识,只有超级用户才能使用。 调用格式: int chown(char *pathname, uid_t owner, gid_t group); pathname为被操作文件的路径名 owner 和 group 分 别 给 出 文 件 所 有 者 标 识 和 组 标 识 。 若 owner或group的值为-1,则文件对应的标识符不变,若在 一个只读文件系统对文件进行chown操作则调用将失败。