参数fd是被参数cmd操作(如下面的描述)的描述符. 针对cmd的值,fcntl能够接受第三个参数(arg) fcntl函数有5种功能: 复制一个现有的描述符(cmd=F_DUPFD). //f_dupfd 获得/设置文件描述符标记(cmd=F_GETFD或F_SETFD). //f_getfd//f_setfd 获得/设置文件状态标记(cmd=F_GETFL或F_SETFL). //f_getfl...
int fcntl(int fd, int cmd, ... //arg ); cmd选项: 一、复制文件描述符:F_DUPFD 二、更改设置文件描述标志:F_GETFD 、F_SETFD 文件描述符标志,是体现进程的文件描述符的状态. 当前只定义了一个文件描述符标志FD_CLOEXEC。 0: exec时不关闭已经打开的文件描述符 1: exec时关闭已经打开的文件描述符 三...
参数解析: fd:文件描述。 cmd:操作命令。 arg:供命令使用的参数(其实就是我们指定的那个文件描述符数字大小) 2、我们只以一个cmd参数为例--- F_DUPFD (Duplicate the file descriptor fd using the lowest-numbered available file descriptor greater than or equal to arg. This is different from dup2(2)...
参数fd是被参数cmd操作(如下面的描述)的描述符。针对cmd的值,fcntl能够接受第三个参数int arg。 [返回值]fcntl()的返回值与命令有关。如果出错,所有命令都返回-1,如果成功则返回某个其他值。下列三个命令有特定返回值:F_DUPFD , F_GETFD , F_GETFL以及F_GETOWN。 F_DUPFD 返回新的文件描述符 F_GETFD ...
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(),否则如果通过exec...
int fcntl(int fd, int cmd ,struct flock* lock); fcntl函数功能依据cmd的值的不同而不同。参数对应功能如下: (1)F_DUPFD 与dup函数功能一样,复制由fd指向的文件描述符,调用成功后返回新的文件描述符,与旧的文件描述符共同指向同一个文件。 (2)F_GETFD ...
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_SETLF). ...
F_GETFL , F_GETOWN 返回一个正的进程ID或负的进程组ID fcntl函数有5种功能: 1. 复制一个现有的描述符(cmd=F_DUPFD). 2. 获得/设置文件描述符标记(cmd=F_GETFD或F_SETFD). 3. 获得/设置文件状态标记(cmd=F_GETFL或F_SETFL). 4. 获得/设置异步I/O所有权(cmd=F_GETOWN或F_SETOWN). ...
fcntl函数的返回值与命令紧密相关。在执行过程中,若发生错误,无论具体是哪个命令,都将返回-1,反之若执行成功,则返回其他特定值。针对具体命令,有四个具有特定返回值的命令:F_DUPFD、F_GETFD、F_GETFL、F_GETOWN。其中,F_DUPFD命令执行成功后,将返回一个新的文件描述符,而F_GETFD和F_GETFL...
int fcntl(int fd, int cmd, long arg); int fcntl(int fd, int cmd, struct flock *lock); 参数: fd:文件描述词。 cmd:操作命令。 arg:供命令使用的参数。 lock:同上。 有以下操作命令可供使用 一. F_DUPFD :复制文件描述词 。 二. FD_CLOEXEC :设置close-on-exec标志。如果FD_CLOEXEC位是0,执...