file descriptors

i m trying to learn processes in unix and i've been reading this but i don't quite get it. its regarding file descriptors. : each is a part of file pointers, they point to another area. indexes into an Operating system maintained table called "file descriptor table". one table per process. may contain 20 entries called file pointers which point to an area of memory containing info about the opening of the file.
can someone comment on that, please!

Here's a nice little (basic) tutorial: http://www.livefirelabs.com/unix\_tip\_trick\_shell\_script/june_2003/06092003.htm.

This explains what "info" about a file they hold ... as for the more technical side, you'll have to dig deeper.

user oombera,

thanks for your answer,
yeah i see where are we heading from here. when i read it in my text, didn't make any sense. but when you said that "unix reads the files by using their respective numbers(file descriptors)" then i really understood the idea behind this. i have one more question though, what does this have to do with processes!?
a25khan

Note that processes do not have a limit of 20 file descriptors
as suggested in your mail - rather the limit is OPEN_MAX.

Here is the formal POSIX definition of a file descriptor:

A per-process unique, non-negative integer used to identify an open file for the purpose of file access. The value of a file descriptor is from zero to OPEN_MAX. A process can have no more than OPEN_MAX file descriptors open simultaneously.

Note also the difference between file DESCRIPTOR and file DESCRIPTION. From SUSv3 ....

(Open) File Description

A record of how a process or group of processes is accessing a file. Each file descriptor refers to exactly one open file description, but an open file description can be referred to by more than one file descriptor. The file offset, file status, and file access modes are attributes of an open file description.

  • Finnbarr