get current workind directory --> j'obtiens un repertoire bizarre

get current workind directory --> j'obtiens un repertoire bizarre - C++ - Programmation

Marsh Posté le 09-05-2003 à 09:11:18    

je viens d'écrire la portion de code suivant :
 

Code :
  1. char *rep_courant [14]; /* le repertoire courant ou l'on se trouve */
  2.   char *adresse ;
  3.   /* initialise le répertoire courant */
  4.   adresse = getcwd(*rep_courant,13) ;
  5.   if (adresse != NULL)
  6.     {
  7.       printf("\nImpossible de déterminer le répertoire courant !\n" );
  8.       return (-1);
  9.     }
  10.   else printf("\n%s\n", *rep_courant);


 
or quand j'exécute il me retourne comme répertoire courant :  
ü>
 
or je suis dans le rep FTP.
je pense pas que je me suis trompé dans la syntaxe (même si j'avoue que j'ai un petit doute dans le printf).  
mais est ce que cette fonction (getcwd) retourne que le répertoire courant (qui est FTP) ou le chemin absolu (dans ce cas j'aurais pas assez de place avec 14 caractères ce qui expliquerai l'erreur) ?

Reply

Marsh Posté le 09-05-2003 à 09:11:18   

Reply

Marsh Posté le 09-05-2003 à 09:14:09    

t'es sur de tout comprendre au pointeur
 
 
adresse = getcwd(*rep_courant,13) ;
printf("\n%s\n", *rep_courant);


Message édité par Taz le 09-05-2003 à 09:15:02
Reply

Marsh Posté le 09-05-2003 à 09:19:38    

Citation :

t'es sur de tout comprendre au pointeur


 
non pas tout mais un peu mais là je pense pas avoir fait d'erreur avec les pointeurs. je serais pas contre une petite explication de mon erreur si vous avez le temps (car je vois pas l'intéret de juste corriger une erreur sans explication).

Reply

Marsh Posté le 09-05-2003 à 09:24:50    

Code :
  1. char rep_courant [14]; /* le repertoire courant ou l'on se trouve */
  2.   char *adresse ;
  3.   /* initialise le répertoire courant */
  4.   adresse = getcwd(rep_courant,13) ;
  5.   if (adresse != NULL)
  6.     {
  7.       printf("\nImpossible de déterminer le répertoire courant !\n" );
  8.       return (-1);
  9.     }
  10.   else printf("\n%s\n", rep_courant);


 
T'as l'air d'avoir des problemes avec la notion de pointeur, vu ton code:  
char *rep_courant [14];  
 
Ceci devrait aussi marcher

Code :
  1. char *rep_courant = getcwd(NULL,0);
  2.   if (rep_courant != NULL)
  3.     {
  4.       printf("\nImpossible de déterminer le répertoire courant !\n" );
  5.       return (-1);
  6.     }
  7.   else
  8.     {
  9.      printf("\n%s\n", rep_courant);
  10.      free(rep_courant);
  11.     }


 
A+,


---------------
There's more than what can be linked! --    Iyashikei Anime Forever!    --  AngularJS c'est un framework d'engulé!  --
Reply

Marsh Posté le 09-05-2003 à 09:35:13    

LordAnkou a écrit :

Citation :

t'es sur de tout comprendre au pointeur


 
non pas tout mais un peu mais là je pense pas avoir fait d'erreur avec les pointeurs. je serais pas contre une petite explication de mon erreur si vous avez le temps (car je vois pas l'intéret de juste corriger une erreur sans explication).


Tu n'avais pas declaré un pointeur sur une chaine de caracteres, ni un tableau de 14 caracteres, mais un tableau de 14 pointeurs sur des chaines de caracteres...
A+,


---------------
There's more than what can be linked! --    Iyashikei Anime Forever!    --  AngularJS c'est un framework d'engulé!  --
Reply

Marsh Posté le 16-05-2003 à 14:31:46    

j'ai résolu mon problème mais là j'en ai une autre et je pense que ça vient du compilo.
 

Code :
  1. /* initialise le repertoire courant */
  2.   if (_gtcwd(buffer,25) == NULL)
  3.     {
  4.       printf("\nImpossible de determiner le repertoire courant !\n" );
  5.       return (-1);
  6.     }


 
et si j'ai bien lu _getcwd n'a pas besoin de librairie spécifique :

Citation :


Standard C Library (libc, -lc)


 
alors je me demande si ça viendrait pas du compilo (TCC) et voila ce que je tape en ligne de commande (je pense que c inutile de le marquer mais on sait jamer) :
TCC -r- -IG:\turboc\include -LG:\turboc\lib -eFTP ftp.c init.obj ligneRTS.obj recoit.obj envoi.obj dirfcts.obj
 
je précise que je suis sous dos (ça marche sous linux...) et que je dois faire ça à tout pris sous dos (merci les projets asm-C).  

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed