I want to create a file descriptor in C whose value i will specify in code. I have a integer variable which specifies the value of file descriptor to be created. For example i may need a file descriptor whose value is 5 and later associate that with the file named "sample.dat" .
可以将文章内容翻译成中文,广告屏蔽插件可能会导致该功能失效(如失效,请关闭广告屏蔽插件后再试):
问题:
回答1:
You need dup2()
http://linux.die.net/man/2/dup
回答2:
fd = open ("sample.dat", O_RDONLY);
open the file
dup2 (fd, 5);
and copy the file descriptor fd
into the descriptor number 5
now you can do read (5, buffer, BUFF_MAX);
or also use fd
to access the same file. You need to close the fd
explicitly if you do not need it.
As @Arkadiy told see man dup2
for details.