荔园在线
荔园之美,在春之萌芽,在夏之绽放,在秋之收获,在冬之沉淀
[回到开始]
[上一篇][下一篇]
发信人: FreeBSD (FreeBSD), 信区: Linux
标 题: MINIX原代码分析之三 文件管理(转寄)
发信站: BBS 荔园晨风站 (Tue Mar 7 21:52:11 2000), 站内信件
【 以下文字转载自 FreeBSD 的信箱 】
【 原文由 liugang.bbs@smth.org 所发表 】
发信人: tdx (汤大虾), 信区: Linux
标 题: MINIX原代码分析之三 文件管理(转寄)
发信站: BBS 水木清华站 (Sun Feb 27 08:47:56 2000) WWW-POST
MINIX 文 件 管 理
系统调用 作用 备注
fd=creat(name,mode) 在创建一个新文件同时,还以写方式打开 name:文件名
mode::
保护模式
fd=mknod(name,mode,addr) 创建设备文件 name:”/dev/fd0”(设备文件名)
mode:020744(020-字符设备文件名,744-保护模式) addr:0x0402(04-主设备号 02-次
设备号)
fd=open(file,how,…..) 打开一个文件 file:路径名 how:打开方式 (只读:
O-RDONLY 只写:O-WRONLY 可读可写:O-RDWR)
s=close(fd) 关闭一个打开文件
n=read(fd,buffer,nbytes) 从一个文件读数据到一个缓冲区
n=write(fd,buffer,nbytes) 从缓冲区将数据写入文件
pos=lseek(fd,offset,whence) 移动文件指针 fd:文件描述符 offset:文件的位
置
whence:文件位置相对于文件头、当前位置、文件尾
s=stat(name,&buf) 获取一个文件的状态信息。 stat用文件名来指定文件,
fstat用文
件描述符来指定文件,则fstat很适合已打开或文件名不可知的文件
s=fstat(fd,&buf) 获取一个文件的状态信息
fd=dup(fd) 为打开文件分配一个新的文件描述符 0:标准输入 1:标准输出
dup的变种
:dup2(fd,fd2) fd:指向一个打开文件 fd2:为一个未使用的文件描述符
s=pipe(&fd[0]) 创建一个管道文件 fd[0]:存放供读使用的文件描述符 fd[1]:
存放供
写使用的文件描述符
s=ioctl(fd,request,argp) 对文件进行特殊操作 fd :指定一个文件
request:操作类
型 argp:指定一个POSIX数据结构的地址(包括各种标志和控制字符的数组)
s=access(name,amode) 检查对一个文件是否具有某种访问权限 amode:4-检查读
权限,
2-检查写权限,1-检查访问权限,允许使用这几者的组合,0-检查文件是否存在和所有目
录是否允许查找
s=rename(old,new) 更改文件名
s=fcntl(fd,cmd,……) 可对文件的一部分进行加锁或解锁
--
※ 来源:·BBS 水木清华站 smth.org·[FROM: 166.111.11.183]
--
※ 转载:·BBS 荔园晨风站 bbs.szu.edu.cn·[FROM: 192.168.8.200]
[回到开始]
[上一篇][下一篇]
荔园在线首页 友情链接:深圳大学 深大招生 荔园晨风BBS S-Term软件 网络书店