Was sind die möglichen Werte für die Datei-Deskriptoren?

Ich bin daran interessiert zu wissen, die gültigen Werte, die ich erwarten kann, für einen Datei-Deskriptor.

Bitte lassen Sie mich erklären ein wenig. Ich weiß, dass, zum Beispiel, wenn ich #include <unistd.h> auf meinem linux-system dann einen Aufruf zum öffnen einer Datei zum Lesen:

int fileDescriptor;
fileDescriptor = open("/some/filename",O_RDONLY);

könnte ein Fehler auftreten und ich erhalten -1 als Ergebnis.

Übrigens die (-1) negativ muss etwas haben, von besonderer Bedeutung. Es ist, dass alle anderen Werte sind gültige Datei-Deskriptoren? d.h. auch die negativen wie -2 und -1023?

Unter der Annahme, der int ist 4 bytes (sizeof(int)==4), dann würde

(-1) = 10000000 0000000 00000000 00000001

wäre die einzige nachweisbare Ungültiger Datei-Deskriptor?
Würden andere wie:

  • (0) = 00000000 0000000 00000000 00000000
  • (-2) = 10000000 0000000 00000000 00000010
  • (2) = 00000000 0000000 00000000 00000010

ok sein?
Da der file-Deskriptor Speicherung von 4 bytes, ich hätte daher maximal
(2^(8*4)-1) gültige Datei-Deskriptoren, und somit wäre dies die maximale Anzahl von Dateien, die ich öffnen kann, richtig?

Setzen es schlicht wieder:

Was sollte ich erwarten, dass eine (gültige) Datei-Deskriptor werden?

beliebigen Wert, aber -1?

  • file descriptor, a small, **nonnegative integer** for use in subsequent system calls siehe man 2 open
  • Siehe diese Frage für die maximale Anzahl von Dateien/Datei-Deskriptoren, die geöffnet werden können.
Schreibe einen Kommentar