BBS水木清华站∶精华区

发信人: 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水木清华站∶精华区