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 ausbtw. 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!