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 : Sélectionner tout - Visualiser dans une fenêtre à part
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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 ?