Eine Textdatei mit read() zeilenweise unter Unix (Solaris 7.0) lesen, wie mache ich das?



  • Hallo,

    der Titel sagt eigentlich alles.

    Danke im voraus.

    CrazyMen



  • Ich hab mal schnell was hingehackt. Bei mir läuft das auf debian sarge, gcc 3.3.4. Keine Ahnung, aber vielleicht hilft es Dir...

    #include <unistd.h>
    #include <stdio.h>
    
    int main()
    {
      int MAXSIZE = (1<<10);
      char buffer[MAXSIZE+1]; // wir wollen schliesslich ein zeilenende
      int r = read(0, buffer, MAXSIZE);
      buffer[r] = '\0';
      printf("\nDie Zeile ist: %s\n", buffer);
    
      return 0;
    }
    


  • Mit read Zeilenweise zu lesen ist nicht direkt möglich. Das kannst du nur, wenn du dir eine extra Bufferung um read baust, aber dann würde ich die man: mmap(2) Variante Bevorzugen, wenn du diese anwenden kannst

    @derDepp
    das ist kein zeilenweise lesen, sondern du liest einfach 1024 byte und gibst die aus 🙄

    btw. ist der Rückgabewert von read ssize_t und nicht int und für Größenangaben benutzt man size_t und nicht int



  • ich wollte natürlich niemanden in die irre führen.

    sorry, aber mein nick sollte das erklären -> derDepp eben!


Anmelden zum Antworten