bonjours à tous.

je suis actuellement en train de développer un petit serveur de sauvegarde de fichier (texte et binaire) mais je me retrouve avec un problème (je suppose que vous vous en doutez ^^)

mon problème est :
j'ai une fonction qui est doit m'ouvrir un fichier en écriture et faire des test dessus pour vérifier qu'il n'y as pas eu d'erreur lors de l'ouverture car le nom de fichier est dynamique.
les paramètres sont le nom du fichier (char *) et son dossier (char *) cependant lors de la création du fichier celui ci se retrouve avoir un nom tronqué à 4 caractère. de plus si je tente de fermer le fichier je me retrouve avec une erreur de free m'indiquant que le pointeur du fichier est incorect (c'est ce que j'en ais déduis)...
ci-dessous je vous joint le code de la fonction (le fclose est la juste pour tester l'erreur il n'est pas présent dans la vraie version)

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
FILE *RFopen(char *nomFichier,char *dossier){
 
char *location=strdup(dossier);
FILE *fichier;
strcat(location,nomFichier);
    printf("localisation : '%s'\n",location);
    fichier=fopen(location,"wb");
    if (fichier==NULL) {
    perror("fopen()");
    exit(errno);
    }else{
    printf("Fichier ouvert: %s \nDans %s\n",nomFichier,dossier);}
    fclose(fichier);
    return fichier;
}
/** \brief ouverture d'un fichier en mode binaire
 * \param nom du fichier
 * \param dossier de stockage du fichier
 * \return file descriptor
 */
merci d'avance