Salve ragazzi, sto smadonnando con queste 3 funzioni..
ora vi posto il mio codice:
codice:
#include <sys/types.h>
#include <stdio.h>
#include <fcntl.h>
#include <stdlib.h>
#include <string.h>
#include <errno.h>


int main(){
	int us;
	us = open("SharkServer/users.sxs", O_RDWR|O_CREAT, 0666);
	if(us == -1){
		puts("Si è verificato un errore nell'apertura/creazione del file user.sxs\n");
		exit(-1);
	}
	lseek(us, 0, 2);
	char text[128];
	memset(text, '\0', 128);
	strcpy(text, "ciao\n");
	write(us, text, 128);
	
	
	close(us);
	
}
avevo pensato di aprire il file, di impostare il puntatore alla fine del file e di scrivere...
ma con il codice sopra ripostato, il sistema mi crea un file da 8GB(solo per ciao...)
OK, niente problemi, mi faccio coraggio e smanettando un po qua un po la, mi accorgo che la open puo prendere il parametro O_APPEND che in sostanza fa quello che dovrebbe fare lseek() anche se è troppo strano che lseek si comporti in questo modo..
perfetto, uso O_APPEND... tutto fila liscio come l'olio, fino a quando non mi serve di nuovo lseek...
infatti, dopo questa bella scrittura di ciao, volevo leggerlo, magari leggendo solo i primi 2 caratteri: 'ci'
quindi mi dico, uso lseek(us, 0, 0) e si riposizionera all'inizio del file e potro leggere i 2 caratteri...ma...
NIENTE DA FARE....in pratica lseek sembra non funzionare quando aggiungo O_APPEND e se tolgo O_APPEND ho il problema degli 8GB di file...
COSA DIAVOLO SBAGLIO?