【发布时间】:2011-05-09 10:55:47
【问题描述】:
我想在 C 中创建一个文件描述符,我将在代码中指定其值。 我有一个整数变量,它指定要创建的文件描述符的值。例如,我可能需要一个值为 5 的文件描述符,然后将其与名为 "sample.dat" 的文件相关联。
【问题讨论】:
标签: c file-descriptor file-handling fdopen
我想在 C 中创建一个文件描述符,我将在代码中指定其值。 我有一个整数变量,它指定要创建的文件描述符的值。例如,我可能需要一个值为 5 的文件描述符,然后将其与名为 "sample.dat" 的文件相关联。
【问题讨论】:
标签: c file-descriptor file-handling fdopen
fd = open ("sample.dat", O_RDONLY);打开文件
dup2 (fd, 5); 并将文件描述符 fd 复制到描述符编号 5 中
现在您可以使用read (5, buffer, BUFF_MAX); 或使用fd 访问同一个文件。如果不需要,需要明确关闭fd。
正如@Arkadiy 所说,详情请参阅man dup2。
【讨论】:
dup 和 dup2 不要关闭旧的文件描述符。
NOTES: the old descriptor is closed with dup2()!,请澄清。
你需要 dup2()
【讨论】:
newfd 已经属于一个文件,它就会被关闭!我认为您最好使用地图之类的东西。