C read() und write() while-Schleife

Hier ist der Beispiel-code:

int nbajt; int buf[];

 //we opened file and get descriptor fd

 while((nbajt = read(fd, buf, 5)) > 0){
        if (write(fd2, buf, nlbajt) == -1){
             perror("ERROR");
            exit(1);
        }
    } 

Ich verstehe nicht, wie es ist zu arbeiten, wenn wir verwenden Sie while-Schleife. Wie oft diese Schleife wird fortgesetzt?(mal von den lengs von buf?). Wird nbajt hat nur Werte von 1 oder 0 + buf Datei-position ändern 1 nach jeder Schleife Schritt? Also im ersten Schritt haben wir nlbajt=1, und wir nehmen buf ersten position char und dann schreiben Sie es zu fd2?. Am Ende haben wir nlbajt==0 so bedeutet dies, es ist das Ende der Datei? Ich wäre dankbar für die Prüfung, wenn ich falsch bin.Meine größte Sorge ist, wie nbajt Wert verändert. Wie ist es diffrent für diese Haltung:

nbajt = read(fd, buf, 5));
     write(fd2, buf, sizeof(a));
  • Haben Sie Lesen Sie die Dokumentation für read() so verstehen Sie die Argumente und den Rückgabewert?
  • ich war mit Mann. Aber ich verstehe es nur, wenn wir das nicht mit while-Schleife. Ausgelesene Anzahl der bytes, die gelesen wurden. Ich vorgenommen änderung für buf.
InformationsquelleAutor user3402584 | 2014-11-22
Schreibe einen Kommentar