【问题标题】:Create a file descriptor创建文件描述符
【发布时间】:2011-05-09 10:55:47
【问题描述】:

我想在 C 中创建一个文件描述符,我将在代码中指定其值。 我有一个整数变量,它指定要创建的文件描述符的值。例如,我可能需要一个值为 5 的文件描述符,然后将其与名为 "sample.dat" 的文件相关联。

【问题讨论】:

    标签: c file-descriptor file-handling fdopen


    【解决方案1】:

    fd = open ("sample.dat", O_RDONLY);打开文件

    dup2 (fd, 5); 并将文件描述符 fd 复制到描述符编号 5 中

    现在您可以使用read (5, buffer, BUFF_MAX); 或使用fd 访问同一个文件。如果不需要,需要明确关闭fd

    正如@Arkadiy 所说,详情请参阅man dup2

    【讨论】:

    • dupdup2 不要关闭旧的文件描述符。
    • @Chris Lutz:感谢您指出。我已更正错误。
    • @ChrisLutz 来自 [LDP] (tldp.org/LDP/lpg/node11.html):NOTES: the old descriptor is closed with dup2()!,请澄清。
    【解决方案2】:

    【讨论】:

    • 你必须小心。如果newfd 已经属于一个文件,它就会被关闭!我认为您最好使用地图之类的东西。
    猜你喜欢
    • 2012-03-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多