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

Fermé
oopin - 18 déc. 2008 à 17:23
lami20j Messages postés 21331 Date d'inscription jeudi 4 novembre 2004 Statut Modérateur, Contributeur sécurité Dernière intervention 30 octobre 2019 - 19 déc. 2008 à 13:56
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 33081 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 27 avril 2024 7 749
19 déc. 2008 à 03:22
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 jeudi 4 novembre 2004 Statut Modérateur, Contributeur sécurité Dernière intervention 30 octobre 2019 3 567
19 déc. 2008 à 13:56
Salut,

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

0