Definition | #include <stdio.h> int read(int dk, char *puf, int anz);
Bei Textdateien liest | |
Parameter | int dk Dateikennzahl der Eingabedatei. char *puf Zeiger auf den Bereich, in den die gelesenen Daten geschrieben werden sollen. Er sollte mindestens anz Bytes groß sein. int anz Maximale Anzahl der Bytes, die gelesen werden sollen. Wird vorher das Zeilenende erreicht, werden weniger als anz Bytes eingelesen. | |
Returnwert | Anzahl der tatsächlich gelesenen Bytes | |
bei Erfolg. | ||
| 0 | bei Dateiende. |
| -1 |
|
Hinweise | Die Anzahl der tatsächlich gelesenen Bytes kann kleiner sein als die Angabe in anz, wenn vorher Zeilenende erreicht wird (nur bei Textdateien), sowie bei Dateiende oder Fehler. Um sicherzugehen, dass nicht mehr Bytes gelesen werden, als der Puffer aufnehmen kann, sollten Sie Bei Textdateien mit der Zugriffsart SAM und variabler Satzlänge, für die zusätzlich eine maximale Satzlänge angegeben ist, gilt: Wenn bei Bei Dateien mit satzorientierter Ein-/Ausgabe (Satz-E/A), d.h. wenn bei | |
Beispiel | Folgendes Programm kopiert die Standardeingabe (Dateikennzahl 0) auf die Standardausgabe (Dateikennzahl 1). Wenn Sie den Umlenkmechanismus für #include <stdio.h> int main(void) { char buf[BUFSIZ]; int n; while((n = read(0, buf, sizeof(buf))) > 0) write(1, buf, n); return 0; } | |
Siehe auch | write, open, open64, creat, creat64 |