F_SETFD是其中之一,用来设置文件描述符的标识。 通过F_SETFD命令,我们可以设置文件描述符的标识,比如设置文件描述符为close-on-exec。这意味着当进程执行exec调用时,该文件描述符会被关闭,从而避免文件描述符泄漏的问题。这在多进程编程以及网络编程中是非常有用的。 使用F_SETFD命令可以通过以下步骤来实现: 1. 打...
fcntl(fd, F_SETFD, FD_CLOEXEC); // 这里设置为FD_CLOEXEC表示当程序执行exec函数时本fd将被系统自动关闭,表示不传递给exec创建的新进程, 如果设置为fcntl(fd, F_SETFD, 0);那么本fd将保持打开状态复制到exec创建的新进程中
F_GETFD:读取文件描述标识 F_SETFD:设置文件描述标识 F_GETFL:读取文件状态标识 F_SETFL:设置文件状态标识 F_GETLK:如果已经被加锁,返回该锁的数据结构。如果没有被加锁,将l_type设置为F_UNLCK F_SETLK:给文件加上进程锁 F_SETLKW:给文件加上进程锁,如果此文件之前已经被加了锁,则一直等待锁被释放。 接下...
("test.txt", O_TRUNC | O_RDWR | O_APPEND | O_CREAT, 0777); if(fd < 0) { perror("open"); return -1; } printf("fd = %d\n", fd); fcntl(fd, F_SETFD, 0);//关闭fd的close-on-exec标志,开启的话,子进程exec无法执行 write(fd, "hello c program\n", strlen("hello c ...
F_SETFD:将文件描述符close-on-exec标志设置为第三个参数arg的最后一位类似FD_CLOEXEC。如果返回值和FD_CLOEXEC进行与运算结果是0的话,文件保持交叉式访问exec(),否则如果通过exec运行的话,文件将被关闭(arg被忽略)。fcntl(fd, F_SETFD, 0);//关闭fd的close-on-exec标志 ...
设置/获取文件描述符标志 F_GETFD (void) F_SETFD (long) 设置/获取文件状态标志 F_GETFL (void) F_SETFL (long) 获取/设置文件锁 F_GETLK F_SETLK,F_SETLKW 其中复制文件描述符可参见《linux系统编程之文件与I/O(五):打开文件的内核结构file和重定向》,文件描述符的标志只有一个即FD_CLOEXEC,设置/获取...
F_SETFD:设置close-on-exec标志,该标志以参数arg的FD_CLOEXEC位决定 F_GETFL:得到open设置的标志 函数传入值 cmd F_SETFL:改变open设置的标志 F_GETFK:根据lock描述,决定是否上文件锁 F_SETFK:设置lock描述的文件锁 F_SETLKW:这是F_SETLK的阻塞版本(命令名中的W表示等待(wait))。
获取/设置文件描述符标志(F_GETFD 或 F_SETFD); 获取/设置文件状态标志(F_GETFL 或 F_SETFL); 获取/设置异步 IO 所有权(F_GETOWN 或 F_SETOWN); 获取/设置记录锁(F_GETLK 或 F_SETLK)。 ...:fcntl() 函数是一个可变参数函数,第三个参数根据不同的 cmd 需要传入相应的实参。
1. 复制一个现有的描述符(cmd=F_DUPFD). 2. 获得/设置文件描述符标记(cmd=F_GETFD或F_SETFD). 3. 获得/设置文件状态标记(cmd=F_GETFL或F_SETFL). 4. 获得/设置异步I/O所有权(cmd=F_GETOWN或F_SETOWN). 5. 获得/设置记录锁(cmd=F_GETLK , F_SETLK或F_SETLKW). ...