Ich interessiere mich für die gültigen Werte, die ich für einen Dateideskriptor erwarten kann.Was sind die möglichen Werte für Dateideskriptoren?
Bitte lassen Sie mich ein wenig erklären. Ich weiß, dass, zum Beispiel, wenn ich #include <unistd.h>
auf meinem Linux-System verwende, dann einen Anruf eine Datei zum Lesen zu öffnen:
int fileDescriptor;
fileDescriptor = open("/some/filename",O_RDONLY);
ein Fehler kann auftreten, und ich erhalte -1 als Ergebnis.
Zufälligerweise muss die (-1) negative etwas von besonderer Bedeutung haben. Sind alle anderen Werte gültige Dateideskriptoren? d.h. auch negative wie -2 und -1023?
Unter der Annahme, dass int 4 Bytes (sizeof(int)==4
), dann würde
(-1) = 10000000 0000000 00000000 00000001
wäre die einzige detektierbare ungültige Dateideskriptor sein? würden andere mögen:
(0) = 00000000 0000000 00000000 00000000
(-2) = 10000000 0000000 00000000 00000010
(2) = 00000000 0000000 00000000 00000010
ok sein? Da der Dateideskriptor 4 Bytes speichern könnte, hätte ich daher maximal (2^(8 * 4) -1) gültige Dateideskriptoren und folglich wäre dies die maximale Anzahl von Dateien, die ich geöffnet haben kann, richtig?
Um es schlicht wieder:
Was soll ich einen (gültiger) Dateideskriptors erwarten zu sein?
ein beliebiger Wert, aber -1?
'Datei-Deskriptor, eine kleine, ** nichtnegative Ganzzahl ** für folgende Systemaufrufe' siehe man 2 offen –
Siehe [diese Frage] (https://stackoverflow.com/questions/17931583/maximum-number- of-files-das-kann-open-by-c-fopen-in-linux) für die maximale Anzahl von Dateien/Dateideskriptoren, die geöffnet werden können. – jotik