2011-05-09 384 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