Diff for /rpl/src/gestion_fichiers.c between versions 1.36 and 1.37

version 1.36, 2011/11/26 10:01:26 version 1.37, 2011/12/05 17:45:00
Line 348  caracteristiques_fichier(struct_processu Line 348  caracteristiques_fichier(struct_processu
                 l_element_courant = (*l_element_courant).suivant;                  l_element_courant = (*l_element_courant).suivant;
             }              }
         }          }
           else if (errno == EACCES)
           {
               // Le répertoire n'est pas accessible en écriture. On tente
               // l'ouverture du fichier.
   
               if ((descripteur = open(nom, O_RDONLY, S_IRUSR | S_IWUSR)) == -1)
               {
                   // Le fichier n'existe pas.
                   close(descripteur);
                   erreur = d_absence_erreur;
               }
               else
               {
                   erreur = d_absence_erreur;
                   (*existence) = d_vrai;
   
                   // On chercher à savoir si le fichier est ouvert.
                   // S'il est ouvert, on renvoie son unité de rattachement.
   
                   l_element_courant = (*s_etat_processus).s_fichiers;
   
                   while(l_element_courant != NULL)
                   {
                       if (strcmp((*((struct_descripteur_fichier *)
                               (*l_element_courant).donnee)).nom, nom) == 0)
                       {
                           if (((*((struct_descripteur_fichier *)
                                   (*l_element_courant).donnee)).pid == getpid())
                                   && (pthread_equal(
                                   (*((struct_descripteur_fichier *)
                                   (*l_element_courant).donnee)).tid,
                                   pthread_self()) != 0))
                           {
                               (*ouverture) = d_vrai;
   
                               (*unite) = (unsigned long)
                                       fileno((*((struct_descripteur_fichier *)
                                       (*l_element_courant).donnee))
                                       .descripteur_c);
                               break;
                           }
                       }
   
                       l_element_courant = (*l_element_courant).suivant;
                   }
               }
           }
         else          else
         {          {
             erreur = d_erreur;              erreur = d_erreur;

Removed from v.1.36  
changed lines
  Added in v.1.37


CVSweb interface <joel.bertrand@systella.fr>