--- rpl/src/instructions_l4.c 2010/03/04 10:17:51 1.4 +++ rpl/src/instructions_l4.c 2010/03/06 18:29:07 1.5 @@ -716,6 +716,8 @@ instruction_lock(struct_processus *s_eta struct flock lock; + struct_descripteur_fichier *fichier; + struct_objet *s_objet_argument_1; struct_objet *s_objet_argument_2; @@ -811,12 +813,14 @@ instruction_lock(struct_processus *s_eta free(chaine); - if ((descripteur = descripteur_fichier(s_etat_processus, + if ((fichier = descripteur_fichier(s_etat_processus, (struct_fichier *) (*s_objet_argument_2).objet)) == NULL) { return; } + descripteur = (*fichier).descripteur_c; + if (fcntl(fileno(descripteur), F_SETLK, &lock) == -1) { liberation(s_etat_processus, s_objet_argument_1);