5

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" .

mukesh
  • 726
  • 1
  • 11
  • 27

2 Answers2

6

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.

phoxis
  • 60,131
  • 14
  • 81
  • 117
4

You need dup2()

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

  • 1
    You have to be careful. If `newfd` already belongs to a file it is closed! I think you would be better of using something like a map. – RedX May 09 '11 at 11:14