F_DUPFD 一:第一种类似于dup操作 fcnlt(oldfd, F_DUPFD, 0) <==>dup2(oldfd, newfd) F_GETFD 二:设置close-on-exec旗标 在此函数中创建子进程,调用execl #include <stdio.h> #include <stdlib.h> #include <string.h> int main() { pid_t pid;//以追加的形式打开文件 int fd = fd = ...
F_GETFD:读取文件描述标识 F_SETFD:设置文件描述标识 F_GETFL:读取文件状态标识 F_SETFL:设置文件状态标识 F_GETLK:如果已经被加锁,返回该锁的数据结构。如果没有被加锁,将l_type设置为F_UNLCK F_SETLK:给文件加上进程锁 F_SETLKW:给文件加上进程锁,如果此文件之前已经被加了锁,则一直等待锁被释放。 接下...
//设置socket为非阻塞模式(套接字立即返回,不管I/O是否完成,该函数所在的线程会继续运行)fcntl(fd,F_SETFL,fcntl(fd,F_GETFD,0)|O_NONBLOCK);//F_SETFL 设置给arg描述符状态标志,可以更改的几个标志是:O_APPEND, O_NONBLOCK,O_SYNC和O_ASYNC。//F_GETFL 取得fd的文件状态标志,如同下面的描述一样(arg被...
fcntl(oldfd, F_DUPFD, newfd); 2. cmd值的F_GETFD和F_SETFD: F_GETFD 取得与文件描述符fd联合的close-on-exec标志,类似FD_CLOEXEC。如果返回值和FD_CLOEXEC进行与运算结果是0的话,文件保持交叉式访问exec(),否则如果通过exec运行的话,文件将被关闭(arg 被忽略) F_SETFD 设置close-on-exec标志,该标志以...
F_GETFD:返回文件描述符标志。这些标志包括FD_CLOEXEC等,表示文件描述符在exec()调用时的行为。 F_GETFL:返回文件状态标志。这些标志包括O_RDONLY、O_WRONLY、O_RDWR等,表示文件的访问模式。 F_GETOWN:返回当前接收SIGIO或SIGURG信号的进程ID或进程组ID。如果是进程组ID,则返回负值。 F_GETLK、F_SETLK、F_SETLKW...
设置/获取文件描述符标志 F_GETFD (void) F_SETFD (long) 设置/获取文件状态标志 F_GETFL (void) F_SETFL (long) 获取/设置文件锁 F_GETLK F_SETLK,F_SETLKW 其中复制文件描述符可参见《linux系统编程之文件与I/O(五):打开文件的内核结构file和重定向》,文件描述符的标志只有一个即FD_CLOEXEC,设置/获取...
fcntl(oldfd, F_DUPFD, 0); 而调用dup2(oldfd, newfd); 等效于 close(oldfd); fcntl(oldfd, F_DUPFD, newfd); 2. cmd值的F_GETFD和F_SETFD: F_GETFD F_SETFD 在修改文件描述符标志或文件状态标志时必须谨慎,先要取得现在的标志值,然后按照希望修改它,最后设置新标志值。不能只是执行F_SETFD或F...
fcntl(oldfd, F_DUPFD, 0); 而调用dup2(oldfd, newfd); 等效于 close(oldfd); fcntl(oldfd, F_DUPFD, newfd); 2. cmd值的F_GETFD和F_SETFD: F_GETFD 取得与文件描述符fd联合的close-on-exec标志,类似FD_CLOEXEC。如果返回值和FD_CLOEXEC进行与运算结果是0的话,文件保持交叉式访问exec(),否则如...
fcntl函数的返回值与命令紧密相关。在执行过程中,若发生错误,无论具体是哪个命令,都将返回-1,反之若执行成功,则返回其他特定值。针对具体命令,有四个具有特定返回值的命令:F_DUPFD、F_GETFD、F_GETFL、F_GETOWN。其中,F_DUPFD命令执行成功后,将返回一个新的文件描述符,而F_GETFD和F_GETFL...