Ich habe folgende Erklärung in einigen Programmen gesehen, die meisten scheinen für Linux gemacht zu sein.lesen (fd, NULL, 0); was tut es? ist es klar definiert?
rv = read(fd, NULL, 0);
In einigen Programmen ist es in einer Schleife, in einigen einer einzigen Anweisung.
Was macht es wirklich?
Man Seite sagt, dass ein Aufruf wie dies kann oder nicht auf Fehler überprüfen kann ...
Was ist die Bedeutung des Rückgabewertes?
Welche Arten von Dateideskriptoren werden unterstützt?
Und wenn rv==0
wie "kein Fehler" von z. "Steckdose geschlossen".
Es scheint grundsätzlich nicht tragbar. Die Seite von linux man (3) read sagt: 'Implementierungen sind erlaubt, aber nicht erforderlich, um eine Fehlerprüfung für read() - Anfragen von null Byte durchzuführen.POSIX sagt: Bevor irgendeine Aktion ausgeführt wird, und wenn nbyte gleich Null ist, wird gelesen() Funktion * kann * erkennen und Fehler zurückgeben. – Duck