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

oopin -  
lami20j Messages postés 21506 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
Configuration: Linux Ubuntu
Firefox 3.0.4

2 réponses

  1. mamiemando Messages postés 33173 Date d'inscription   Statut Modérateur Dernière intervention   7 945
     
    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
  2. lami20j Messages postés 21506 Date d'inscription   Statut Modérateur, Contributeur sécurité Dernière intervention   3 571
     
    Salut,

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

    0