Ciao a tutti ,
non ci credo manco io, ma mi sono incartato in un programma facilissimo
Volevo capire meglio il funzionamento di write/read perchè voglio raggiungere questo obiettivo:
"scrivere su un file n messaggi e leggere dallo stesso file un messaggio alla volta senza conoscerne la dimensione"
Quindi stavo cercando di capire se la read si bloccasse sullo \n.
Ma non riesco a far funzionare neanche questo semplicissimo programma qui sotto XD.
Qualcuno mi potrebbe dare una mano?
#include <stdio.h>
#include <unistd.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <stdlib.h>
#include <string.h>
#include <errno.h>
#define BUFS 1024
int main (void){
int fd, n, i;
char bufwrite[BUFS+1], bufread[BUFS+1];
if ((fd = open ("data.txt", O_RDWR | O_CREAT, 0666)) == -1){
fprintf(stderr, "Can't open data: %s\n", strerror (errno));
return 1;
}
strcpy(bufwrite, "prova");
write(fd, bufwrite, 6);
n = read(fd, bufread, BUFS);
if(n > 0) write(1, bufread, n);
close(fd);
unlink("data.txt");
return 0;
}
ps: se mi potete consigliare anche su come risolvere il mio principale problema ve ne sarei molto grato.
Grazie