我试图理解这行代码的含义:
int dfd;
fd2 = fcntl(dfd,F_DUPFD);
答案 0 :(得分:2)
旨在将fd2
设置为引用与dfd
相同的打开文件记录的另一个文件描述符。
应该有第三个参数,即要返回的最低可接受文件描述符。由于缺少第三个参数,调用可能会做任何事情。正确的通话可能如下所示:
fd2 = fcntl(dfd, F_DUPFD, 0);
F_DUPFD
(int)找到大于或等于
arg
的编号最小的可用文件描述符,并使其成为fd
的副本。这与dup2
(2)不同,dup
(2)完全使用指定的描述符。成功时,返回新的描述符。
有关详细信息,请参阅
root |-- value: struct (nullable = true) | |-- version: struct (nullable = true) | | |-- major: integer (nullable = true) | | |-- minor: integer (nullable = true) | |-- guid: string (nullable = true)
(2)。