Ergebnis von ping Befehl in txt schreiben?

Cyberjunkie

Grünschnabel
Hallo!

erstmals muss ich sagen super forum, habe schon viele interessante beiträge gefunden, wie auch diesen:

Code:
#include <stdio.h>
#include <stdlib.h>

int main(int argc, char** argv) {
    FILE* file;
    char ip[20];
    char command[100];
    if(argv < 2) {
        printf("nicht genug parameter");
        return 1;
    }
    file = fopen(argv[1], "r");
    if(file == NULL) {
        printf("datei nicht gefunden");
        return 2;
    }
    while(!feof(file)) {
        memset(ip, 0, 20);
        fgets(ip, 20, file);
        sprintf(command, "ping %s\n", ip);
        system(command);
    }
    return 0;
}

ich habe auch so ein ähnliches programm geschrieben, nur möchte ich gerne das er das resulatat vom ping versuch in eine txt datei speichert.

nun stehe ich aber vor dem problem wie man den system befehl in einem string umwandeln soll!?

weil wenn ich fprintf(gOutFp, "%s", command); schreibe, schreibt er nur den ping befehl in die text datei (ist ja klar) aber wenn ich statt command system(command) schreibe hängt sich das programm immer auf....

bitte um eure hilfe.
 
Hi.

Du kannst von der system Funktion die Ausgabe nicht in deinem Programm weiterverarbeiten.

Was du machen kannst ist an den Befehlsstring noch eine Umleitung anzuhängen um die Ausgabe des Befehls direkt in eine Datei umzuleiten:
C:
char* datei = "c:/temp/ping.txt";
sprintf(command, "ping %s > %s", ip, datei);

Wenn du die Ausgabe direkt in deinem Programm verarbeiten willst, dann mußt du dir mal Pipes anschauen.

Gruß
 
jup, das funktioniert schonmal ganz gut, nur habe ich gemacht das er alle paar minuten einen erneuten ping schickt (endlosschleife) und in der textdatei sollen dann alle ping versuche mit der zeit stehen.

jetzt überschreibt er aber imm den vorrigen ping befehl.

ist das irgendwas zu machen?

wie er sonst die aktuelle zeit in eine textdatei, hab ich schon zusammengebracht ;)
 
Wenn du statt der Umleitung > die Umleitung >> benutzt, dann hängt der DOS Befehlsinterpreter die Daten immer an die Datei an ohne zu löschen.

Gruß
 
Cyberjunkie hat gesagt.:
danke für euere Hilfe, habts schon !
Ja, wir helfen doch gern. Er sollte sich allerdings einer wohlgefälligeren Schreibweise befleissigen, sonst verstößt er gegen Erlass Nr. 15 der Netiquette die er eigens bei der Anmeldung gelobt hat zu ehren und zu achten.

Gruß
 
Zurück