tuccio`
28-06-2010, 14:32
Vorrei capire perché questo funziona:
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
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)
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
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)