View Single Post
Old 28-06-2010, 14:32   #1
tuccio`
Senior Member
 
Iscritto dal: Apr 2010
Città: Frosinone
Messaggi: 416
[C] in cerca di una spiegazione

Vorrei capire perché questo funziona:

Codice:
struct flock *f1 = malloc(sizeof(struct flock));
if (f1 == NULL) {
	fprintf(stderr, "Memory allocation error\n");
	exit(EXIT_FAILURE);
}
if (fcntl(to_vmemd, F_GETLK, f1) < 0 || f1->l_type == F_UNLCK)
	continue;
mentre quest'altro mi restituisce un valore di ritorno di fcntl minore di 0 con errno = EINVAL

Codice:
struct flock f1;
if (fcntl(to_vmemd, F_GETLK, &f1) < 0 || f1.l_type == F_UNLCK)
	continue;
aggiungo anche che questo secondo codice funzionava fino a ieri e la ribellione è cominciata oggi (ho modificato altre cose ovviamente, ma non credo che dovrebbero influenzare questo pezzo di codice)
tuccio` è offline   Rispondi citando il messaggio o parte di esso