PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : system(const char *befehl) to FILE



]=-antr4xx-=[
21.08.2007, 18:17
int main(int argc, char *argv[])
{

freopen("D:\\index.txt", "w", stdout);
system("dir");

return 0;
}

So bringe ich den Inhalt eines Verzeichnisses in die Index.txt, doch nachher kann ich stdout nicht mehr nutzen. Weiss keiner, wie ich die Ausgabe des Befehls "dir" direkt in die Datei bekommen kann?

Wolfkiller
21.08.2007, 21:10
ich würde gerne noch ne frage dazustellen ^^

an nem pc von ner schule hatte ich mein mp3 player angesclossen und es wurde gleich nach dem
anschliesen ne datei BOOTEX.log erstellt die vom inhalt
genau so aussieht wie die Index.txt auser das die pfade bis zum ende "verfolgt"
wurden und auhc unsichtbare datein und verzeichnisse eingetragen waren

wie schreibt man solch ein proggi ??



int main(int argc, char *argv[])
{

freopen("C:\\index.txt", "w", stdout);
system("dir,J:\\");

return 0;
}



oder



int main(int argc, char *argv[])
{

freopen("C:\\index.txt", "w", stdout);
system("tree J:\\");

return 0;
}



kommen dem schon näher aber bei tree is des bissel unübersichtlich und versteckte verzeichnisse werden trotzdem nicht angezeigt und es wird nicht autom gestartet wen man den mp3 oder usb anschliest

-[RiDER]-
21.08.2007, 23:06
int main(int argc, char *argv[])
{
system("dir >> index.txt");

return 0;
}

MfG RiDER

]=-antr4xx-=[
22.08.2007, 11:11
OK, dasklappt, ist aber nicht das richtige. ich möchte die ausgabe in ein char-array...

-[RiDER]-
24.08.2007, 02:12
int main(int argc, char *argv[])
{
FILE *fp;
int nbytes;
char *dir[100];

system("dir >> index.txt");
fp = fopen("index.txt", "r");

for(ctr = 0; ctr < 100; ctr++)
getline(&dir[ctr], &nbytes, fp);

fclose(fp);
return 0;
}

noch eleganter wäre ne verkettete liste ;)

:?: und ich würde gerne wissen, ob man irgendwie die vollständigen Pfade anzeigen lassen kann (z. B. n argument für dir (hab keins gefunden) oder ähnliches; also einfacher als mit strrchr(argv[0], "\\") = '\0').

MfG RiDER

]=-antr4xx-=[
24.08.2007, 18:00
Oh man, die einfachsten Lösungen sind gerade die, auf die ich nie komme. Big thx an Rider.

Nemo.A
25.08.2007, 14:04
Eine bessere Lösung wären natürlich Pipes. Aber so "kompliziert" willst du es wohl nicht machen.

]=-antr4xx-=[
25.08.2007, 16:58
Eine bessere Lösung wären natürlich Pipes. Aber so "kompliziert" willst du es wohl nicht machen.
doch, so möchte ich es, geht ja darum etwas zu lernen.