参数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时关闭已经打开的文件描述符 三...
int fcntl(int fd, int cmd); int fcntl(int fd, int cmd, long arg); int fcntl(int fd, int cmd ,struct flock* lock); fcntl函数功能依据cmd的值的不同而不同。参数对应功能如下: (1)F_DUPFD 与dup函数功能一样,复制由fd指向的文件描述符,调用成功后返回新的文件描述符,与旧的文件描述符共同指...
int fcntl(int fd, int cmd, ... /* arg */ ) 参数解析: fd:文件描述。 cmd:操作命令。 arg:供命令使用的参数(其实就是我们指定的那个文件描述符数字大小) 2、我们只以一个cmd参数为例--- F_DUPFD (Duplicate the file descriptor fd using the lowest-numbered available file descriptor greater than...
int fcntl(int fd, int cmd ,struct flock* lock); fcntl函数功能依据cmd的值的不同而不同。参数对应功能如下: (1)F_DUPFD 与dup函数功能一样,复制由fd指向的文件描述符,调用成功后返回新的文件描述符,与旧的文件描述符共同指向同一个文件。 (2)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...
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). ...
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,执...
int fcntl(int fd, int cmd, struct flock *lock); 参数: fd:文件描述词。 cmd:操作命令。 arg:供命令使用的参数。 lock:同上。 有以下操作命令可供使用 一. F_DUPFD :复制文件描述词 。 二. FD_CLOEXEC :设置close-on-exec标志。如果FD_CLOEXEC位是0,执行execve的过程中,文件保持打开。反之则关闭。
fcntl函数的返回值与命令紧密相关。在执行过程中,若发生错误,无论具体是哪个命令,都将返回-1,反之若执行成功,则返回其他特定值。针对具体命令,有四个具有特定返回值的命令:F_DUPFD、F_GETFD、F_GETFL、F_GETOWN。其中,F_DUPFD命令执行成功后,将返回一个新的文件描述符,而F_GETFD和F_GETFL...