Voici la version finale, où j'espère ne pas avoir fait d'erreur dans les allocations mémoires. Elle a pour avantage d'être portable, de ne pas utiliser de bibliothèques exotiques, et de conserver la valeur du chemin de l'exécutable (variable racine) :
#include<stdio.h>#include<string.h>#include<stdlib.h>intmain(intargc,char*argv[]){FILE*f;intl,r=0;char*chemin,*racine;charnom_fichier[]="data.txt";// Récupération du répertoire de l'exécutablel=strlen(argv[0])-strlen(strrchr(argv[0],'/')+1);racine=calloc(l+1,1);memcpy(racine,argv[0],l);// Récupération du chemin complet du fichier à ouvrirchemin=malloc(l+strlen(nom_fichier)+1);strcpy(chemin,racine);strcat(chemin,nom_fichier);if((f=fopen(chemin,"r"))!=NULL){puts("OK");fclose(f);}else{puts("Erreur de fichier");r=1;}returnr;}
# Version finale
Posté par harlock974 . En réponse au message C : gestion du répertoire de travail. Évalué à 1.
Voici la version finale, où j'espère ne pas avoir fait d'erreur dans les allocations mémoires. Elle a pour avantage d'être portable, de ne pas utiliser de bibliothèques exotiques, et de conserver la valeur du chemin de l'exécutable (variable
racine) :