La première est la suivante; je désire décrémenter un compteur lorsqu'un fichier ne peut pas être ouvert; hors je décrémente même lorsque le fichier existe !!!
- Code: Tout sélectionner
g_disk.ndisk=NUMBER_OF_DISKS;
int fich=NUMBER_OF_DISKS;
int k=0;
int courant;
int precedent;
struct dirent *lecture;
while ((lecture = readdir(rep)))
{
courant=strcmp(".",lecture->d_name);
precedent=strcmp("..",lecture->d_name);
if (courant != 0 && precedent != 0)
{
g_disk.storage[k]=fopen(lecture->d_name,"r+");
if ((g_disk.storage[k]=fopen(lecture->d_name,"r+"))==NULL)
{
fich=fich-1;
printf("trace 1\n"); /*s'affiche autant de fois que de fichier différents de . et ..
}
}
k=k+1;
}
La seconde est la suivante; lorsque j'en chaine ce sous programme avec le suivant qui doit fermer les fichiers je prends une erreur de segmentation.
- Code: Tout sélectionner
void close_disk_raid5(void)
{
int k;
for(k=0;k<g_disk.ndisk;k++)
{
fclose(g_disk.storage[k]);
}
}
:mur: