fopen d'une chaine concaténée
Bonjour,
Mon problème est le suivant, j'ai un fichier qui contient le résultat d'un ls et un char * qui contient un chemin d'accès au dossier.
Je dois ouvrir chaque fichier contenu dans le résultat de ls. Pour ce faire, je dois concaténer le chemin d'accès(/home/user...) + le nom du fichier (foo.txt).
Je le fais de cette façon
Code:
1 2 3 4 5 6 7 8 9
|
const char *path = "/home/user/logs";
void envoiFichier(char *nomFichier) {
char *fichier;
int longueur = 256;
fichier = malloc(longueur);
memset(fichier, '\0', sizeof(fichier));
snprintf(fichier, longueur, "%s/%s\0", path, nomFichier); |
Puis j'imprime le résultat, ça me donne quelque chose de correct (/home/user/foo.txt ) . Mais lorsque je veux passer le résultat de la concaténation à fopen, j'obtiens un No Such file or directory alors que le fichier existe bel et bien.
Code:
if ((file = fopen(fichier, "r")) == NULL) perror("Erreur dans l'open du fichier.info");
Je crois que c'est un problème de '\0' ou quelque chose comme ça, mais j'ai aucune idée de comment le résoudre !
Pouvez-vous m'aider ? :ccool: