2011-05-09 281 views
0

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

回答

4

你需要DUP2()

http://linux.die.net/man/2/dup

+1

你必须小心。如果'newfd'已经属于一个文件,它将被关闭!我想你会更好地使用像地图这样的东西。 – RedX 2011-05-09 11:14:22

3

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

dup2 (fd, 5);和文件描述符fd复制到文件描述符5

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

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

+1

'dup'和'dup2'不会关闭旧的文件描述符。 – 2011-05-09 11:22:23

+0

@Chris Lutz:谢谢你指出。我纠正了错误。 – phoxis 2011-05-09 11:37:43