[c] Supprimer un "\n" en fin d e chaine

oopin -  
lami20j Messages postés 21331 Date d'inscription   Statut Modérateur, Contributeur sécurité Dernière intervention   -
Bonjour,

J'ai un problème en c pour récuperer le chemin ou s'execute mon programme.
Je suis sous Ubuntu

j'utilise le code suivant :

// on recupere dans pwd le chemin d'execution du programme
	FILE *f;
	if ( (f = popen("pwd", "r")) != NULL )  // ouverture
		if ( fgets(pwd, sizeof pwd, f) != NULL ) 
			fputs(pwd, stdout);
	pclose(f); // fermeture
	
	pwd[strlen(pwd)-1] = '\0';


Je récupère bien mon chemin dans ma variable pwd, mais avec un \n à la fin, et lorsque j'essai de remplacer ce \n par un \0 pour marquer la find e la chaine, mes printf("%s" , pwd ) n'affichent plus rien .

Je ne comprend pas :'(

Merci d'avance

oopin
A voir également:

2 réponses

mamiemando Messages postés 33778 Date d'inscription   Statut Modérateur Dernière intervention   7 884
 
Si je puis me permettre, il serait plus simple d'utiliser getcwd :
http://www.linux-kheops.com/doc/man/manfr/man-html-0.9/man2/getcwd.2.html
http://www.linux-kheops.com/doc/man/manfr/man-html-0.9/man3/getcwd.3.html

Bonne chance
0
lami20j Messages postés 21331 Date d'inscription   Statut Modérateur, Contributeur sécurité Dernière intervention   3 570
 
Salut,

fait un printf avant et un après ensuite exécute ton code et affiche le résultat

0