预览加载中,请您耐心等待几秒...
1/9
2/9
3/9
4/9
5/9
6/9
7/9
8/9
9/9

在线预览结束,喜欢就下载吧,查找使用更方便

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

UntitledDocument页码,1/9 close(关闭文件) 相关函数open,fcntl,shutdown,unlink,fclose 表头文件#include<unistd.h> 定义函数intclose(intfd); 函数说明当使用完文件后若已不再需要则可使用close()关闭该文件,二 close()会让数据写回磁盘,并释放该文件所占用的资源。参数fd为 先前由open()或creat()所返回的文件描述词。 返回值若文件顺利关闭则返回0,发生错误时返回-1。 错误代码EBADF参数fd非有效的文件描述词或该文件已关闭。 附加说明虽然在进程结束时,系统会自动关闭已打开的文件,但仍建议自行 关闭文件,并确实检查返回值。 范例参考open() creat(建立文件) 相关函数read,write,fcntl,close,link,stat,umask,unlink,fopen 表头文件#include<sys/types.h> #include<sys/stat.h> #include<fcntl.h> 定义函数intcreat(constchar*pathname,mode_tmode); 函数说明参数pathname指向欲建立的文件路径字符串。Creat()相当于使用下 列的调用方式调用open() open(constchar*pathname,(O_CREAT|O_WRONLY|O_TRUNC)); 错误代码关于参数mode请参考open()函数。 返回值creat()会返回新的文件描述词,若有错误发生则会返回-1,并把错 误代码设给errno。 EEXIST参数pathname所指的文件已存在。 EACCESS参数pathname所指定的文件不符合所要求测试的权限 EROFS欲打开写入权限的文件存在于只读文件系统内 EFAULT参数pathname指针超出可存取的内存空间 EINVAL参数mode不正确。 ENAMETOOLONG参数pathname太长。 ENOTDIR参数pathname为一目录 ENOMEM核心内存不足 ELOOP参数pathname有过多符号连接问题。 EMFILE已达到进程可同时打开的文件数上限 ENFILE已达到系统可同时打开的文件数上限 file://D:\linux_c\function\09.html2004-1-9 UntitledDocument页码,2/9 附加说明creat()无法建立特别的装置文件,如果需要请使用mknod()。 范例请参考open()。 dup(复制文件描述词) 相关函数open,close,fcntl,dup2 表头文件#include<unistd.h> 定义函数intdup(intoldfd); 函数说明dup()用来复制参数oldfd所指的文件描述词,并将它返回。此新的 文件描述词和参数oldfd指的是同一个文件,共享所有的锁定、读写 位置和各项权限或旗标。例如,当利用lseek()对某个文件描述词作 用时,另一个文件描述词的读写位置也会随着改变。不过,文件描 述词之间并不共享close-on-exec旗标。 返回值当复制成功时,则返回最小及尚未使用的文件描述词。若有错误则 返回-1,errno会存放错误代码。错误代码EBADF参数fd非有效的文 件描述词,或该文件已关闭。 dup2(复制文件描述词) 相关函数open,close,fcntl,dup 表头文件#include<unistd.h> 定义函数intdup2(intodlfd,intnewfd); 函数说明dup2()用来复制参数oldfd所指的文件描述词,并将它拷贝至参数 newfd后一块返回。若参数newfd为一已打开的文件描述词,则newfd 所指的文件会先被关闭。dup2()所复制的文件描述词,与原来的文 件描述词共享各种文件状态,详情可参考dup()。 返回值当复制成功时,则返回最小及尚未使用的文件描述词。若有错误则 返回-1,errno会存放错误代码。 附加说明dup2()相当于调用fcntl(oldfd,F_DUPFD,newfd);请参考fcntl ()。 错误代码EBADF参数fd非有效的文件描述词,或该文件已关闭 fcntl(文件描述词操作) 相关函数open,flock 表头文件#include<unistd.h> #include<fcntl.h> file://D:\linux_c\function\09.html2004-1-9 UntitledDocument页码,3/9 定义函数intfcntl(intfd,intcmd); intfcntl(intfd,intcmd,longarg);