Enrengistrer un system("dir") dans un fichier txt???

Enrengistrer un system("dir") dans un fichier txt??? - C - Programmation

Marsh Posté le 26-07-2006 à 23:14:43    

Bonjour,
 
Je débute en c mais j'ai un probleme que je comprend pas. voici mon code
 
Je suis sous devc++ et j'utilise windows
 

Code :
  1. #include <stdlib.h>
  2. #include <stdio.h>
  3. int main(int argc, char *argv[])
  4. {
  5.     FILE* fichier = NULL;
  6. const char* dd=system("dir" );
  7.     fichier = fopen("test.txt", "w" );
  8. printf("%s",dd);
  9.     if (fichier != NULL)
  10.     {
  11.         fputs(dd, fichier);
  12.         fclose(fichier);
  13.         system("pause" );
  14.     }
  15.     return 0;
  16. }


 
Je compile le fichier, il se lance mais j'ai une erreur. l'instruction à 0x77c10ee5 emploie l'adresse mémoire "0x00000000". la mémoire ne peut pas être "read".
 
J'ai essayer de faire avec system("dir > test.txt" ); mais je voudrai trouver une solution autre que celle ci.
 
Donc ma question serai de savoir si il est possible d'afficher la commande system("dir" ) ligne par ligne afin d'enrengistrer dans un fichier .txt, ou alors enrengistrer tous d'un coup sans erreur et que sa marche.
 
Voila j'espere que vous pourriez m'aider.
Merci et a bientôt


Message édité par lunix546 le 26-07-2006 à 23:18:03
Reply

Marsh Posté le 26-07-2006 à 23:14:43   

Reply

Marsh Posté le 26-07-2006 à 23:54:54    

Euh man 3 system :
 
La valeur renvoyée est -1 en cas d'erreur (par exemple échec de fork()) ou le code de retour de la commande en cas de succès. Ce dernier code est dans le format
       indiqué  dans  wait(2).  Ansi, le retour de la commande sera WEXITSTATUS(status).  Dans le cas où /bin/sh ne peut pas être exécuté, le code de retour sera iden-
       tique à celui d'une commande effectuant un exit(127).
 
 
Donc là tu fais n'importe quoi

Reply

Marsh Posté le 27-07-2006 à 01:23:46    

Tous d'abord merci de ta réponce. Ensuite je veut bien avoué que j'ai fait n'importe quoi car je débute en programmation c meme si je comprend pas trop se que tu me dit. Mais tu connaitrais pas un moyen pour avoir le resultat identique a se que je cherche?

Reply

Marsh Posté le 27-07-2006 à 01:33:47    

regarde du coté des fonctions opendir et readdir, scandir bref *dir :D

Reply

Marsh Posté le 27-07-2006 à 04:02:26    

réponse hors sujet  
 
commencer par programmer en VB ou en C# peut te sauver du temps.. pour ensuite passer sous C++ quand tu maitrisera les structures
 
jdis ca comme ca....
 
bonne chance !

Reply

Marsh Posté le 27-07-2006 à 08:30:47    

Vectteur a écrit :

<...>pour ensuite passer sous C++ quand tu maitrisera les structures
 
jdis ca comme ca....


... sur un forum consacré au langage C ?
 


---------------
Des infos sur la programmation et le langage C: http://www.bien-programmer.fr Pas de Wi-Fi à la maison : http://www.cpl-france.org/
Reply

Marsh Posté le 27-07-2006 à 10:44:32    

Reply

Marsh Posté le 27-07-2006 à 11:57:33    

Mouais vous avez pas trop compris se que je cherchais. Je cherche a utiliser la fonction system() et l'enrengistrer dans un .txt . J'ai utilisé la "dir" pour un exemple.
 
Ensuite j'e programme un peu vb donc mon programme je pourrais le faire en vb mais je commence seulement a m'interessais au language C donc je demande un peu d'aide...

Reply

Marsh Posté le 27-07-2006 à 12:00:19    

Ben dans ce cas il faut faire le system("dir > truc.txt" ); pas le choix

Reply

Marsh Posté le 27-07-2006 à 12:02:35    

J'crois que c'est toi qui n'a pas bien compris que tu ne pouvais pas faire ça avec system(), à moins d'user d'astuces vaseuses telle que :  

system("dir > test.txt" );


 
Pour faire ce que tu souhaites, zieute du côté de popen(), mais c'est une fonction POSIX 2.1, c'est pas dit que tu la trouves sous Windows.

Reply

Marsh Posté le 27-07-2006 à 12:02:35   

Reply

Marsh Posté le 27-07-2006 à 12:04:05    

ok merci je vais me renseigner pour cette fonction ;)

Reply

Sujets relatifs:

Leave a Replay

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