Linux环境高级编程-编程基础与文件IO要点.ppt

第二个参数cmd的五种取值方式: 复制一个现存的描述符(cmd=F_DUPFD) 获得/设置文件描述符标记(cmd=F_GETFD或F_SETFD) 获得/设置文件状态标志(cmd=F_GETFL或F_SETFL) 获得/设置异步I/O信号接收进程(cmd=F_GETOWN或F_SETOWN) 获得/设置记录锁(cmd=F_GETLK,F_SETLK或F_SETLKW) F_DUPFD 复制文件描述符filedes,与dup类似 fcntl返回新文件描述符 新描述符是尚未打开的各描述符中,大于或等于第三个参数值中,各值的最小值 例子:假设文件描述符0、1、2被占用, fcntl(1, F_DUPFD, 5)返回什么??? fcntl(2, F_DUPFD, 1)返回什么??? fcntl函数与dup、dup2函数均用于复制文件描述符,即使不同的文件描述符指向同一个文件对象 dup(filedes)等价于 fcntl(filedes, F_DUPFD, 0); dup2(filedes, filedes2)不完全等价于 close(filedes2); fcntl(filedes, F_DUPFD, filedes2); fcntl与dup2不完全等价 dup2是一个原子操作,而close与fcntl则包括两个函数调用。 在close和fcntl之间可能

文档评论(0)

1亿VIP精品文档

相关文档