To expand on what Vern said... the system will always dole out
descriptors in sequence. First 0, then 1, then 2, etc.
Thing is, you can't really be sure what other programs that have run in
your job might do. Sometimes the OS itself will open up 0-2, so you'll
get 3 first.
Plus, who knows what other programs you might run that use these things?
So, you should never code your program in a manner that relies on
getting particular descriptor numbers. It shouldn't matter to you
whether a descriptor number is 0, 3, 571, or any other number...
-1 is an error. Anything higher than -1 is a valid descriptor, and
should be considered acceptable.
On 3/12/2014 5:26 PM, Vernon Hamberg wrote:
Kind of - from the documentation, this about the return value (the file
"/-1/ *open()* was not successful. The /errno/ global variable is set to
indicate the error."
Now the first open file IS always zero - but the first one YOU will see
is either 0 or 3 - the former if you are in a batch environment, the
latter if you are interactive.
This is because, in an interactive environment, the system reserves file
descriptors 0, 1, & 2 for stdin (keyboard), stdout (display), and stderr
(diagnostic/error messages, also to display but separable), respectively.
On 3/12/2014 4:40 PM, Gqcy wrote:
will a valid file handle will be ZERO or greater?
(i.e. the FIRST open file will be ZERO)
a error condition is LESS THAN ZERO, correct?