【问题标题】:what is the usage of F_DUPFD inside fcntl in Linux system callLinux系统调用中fcntl里面的F_DUPFD有什么用
【发布时间】:2017-09-25 04:19:05
【问题描述】:

我试图理解这行代码的含义:

int dfd;

fd2 = fcntl(dfd, F_DUPFD);

【问题讨论】:

    标签: c linux posix


    【解决方案1】:

    它旨在将fd2 设置为另一个引用与dfd 相同的打开文件记录的文件描述符。

    应该有第三个参数,返回的可接受的最低文件描述符。由于缺少第三个参数,因此该调用几乎可以做任何事情。正确的调用可能如下所示:

    fd2 = fcntl(dfd, F_DUPFD, 0);
    

    来自fcntl man page

    F_DUPFD(整数)

    找到大于或等于arg 的最小编号的可用文件描述符,并使其成为fd 的副本。这与dup2(2) 不同,后者完全使用指定的描述符。

    成功时,返回新的描述符。

    详情请参阅dup(2)。

    【讨论】:

    • 是的,dup 是 fcntl 泛型函数的快捷方式。
    猜你喜欢
    • 2017-06-03
    • 2012-10-05
    • 1970-01-01
    • 2019-02-22
    • 2013-07-13
    • 2012-05-04
    • 2016-02-20
    • 1970-01-01
    • 2012-06-30
    相关资源
    最近更新 更多