netstat -n ausgeben?



  • geht das nicht, dass der das einfach ausgibt?
    Weil ich will das nicht unbedingt in eine textdatei schreiben...
    Ausserdem hab ich von Dateimanagement in c++ im moment keine ahnung 😞

    Geht das eigentlich nicht, dass ich einen Zeiger erstelle der an die adresse von system zeigt und dann die sache mittels zeiger ausgebe?
    bin irgendwie ratlos 😞



  • Hi!

    Nein das geht nicht. Du kannst die Ausgabe nur in eine Datei umleiten. Der Rückgabewert von system ist der Rückgabewert der aufgerufenen Anwendung, sprich der Exitcode.
    Filehandling ist aber nicht schwer, man kann sich sehr schnell darin einarbeiten und dann auch gut damit arbeiten. Lernen tut man meist ohnehin durch das nachschlagen und verwenden.

    Code-Hacker



  • gibts dann vielleicht eine andere möglichkeit das zu lösen?

    ohne dass der mir da ne Textdatei generiert bzw. in eine was reinschreibt.

    vielleicht gibts ja eine andere funktion die sowas kann, wäre euch sehr dankbar 🙂



  • Knaller schrieb:

    gibts dann vielleicht eine andere möglichkeit das zu lösen?

    ohne dass der mir da ne Textdatei generiert bzw. in eine was reinschreibt.

    vielleicht gibts ja eine andere funktion die sowas kann, wäre euch sehr dankbar 🙂

    Zwischenzeitlich hättest du das schon 2mal mit der Textdatei implementiert. Außerdem musst du es ja nichtmal verstehen, sondern einfach nur den Source aus dem Link abschreiben. 🙂



  • Hi!

    Wenn du sowas machen willst und dir das lesen einer Datei zu anstrengend ist (und das bei wenns hoch kommt 6 Zeilen Code) verwende eine Bibliothek. Ansonsten geben sämtliche Programme soweit ich weiß die soetwas tun, nur den Exit-Code des aufgerufenen Prozesses zurück, was auch gut so ist, wenn nämlich nicht, könnte man nichtmal feststellen ob die Anwendung fehlerfrei oder nicht beendet wurde, was oft doch wichtiger ist.

    Code-Hacker



  • Bei Windows gibts CreateProcess() und bei Unix popen(). Dann kann man die Ausgabe direkt über eine Pipe einlesen.



  • @Greenthumb: Wenn er sich Pipe-Wissen anlegen darf, hat er die Dateiverwaltung auch schon kapiert 😉

    MfG SideWinder



  • Joa
    hab das jetzt mal probiert mit der textdatei, aber da ist ein Fehler drin

    #include <iostream>
    #include <conio.h>
    
    using namespace std;
    
    int main(){
    	system("netstat -n > puffer.txt");
    	string line;
    
    	ifstream file ("puffer.txt");
    	while(getline(cin,line))
    	{
    	    cout << line << endl;
    	}
    
    	file.close();
    
    	getch();
    	return 0;
    }
    

    ausserdem mag ich das net so, sachen einfach abzuschreiben ohne zu wissen was da jetzt genau geschieht 🙂
    kann mir bitte jemand helfen?



  • Das hat ja dann wohl nichts mehr mit ANSI C zu tun.



  • Dieser Thread wurde von Moderator/in AJ aus dem Forum ANSI C in das Forum DOS und Win32-Konsole verschoben.

    Im Zweifelsfall bitte auch folgende Hinweise beachten:
    C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?

    Dieses Posting wurde automatisch erzeugt.



  • och kann bzw. will mir keiner helfen? 😞



  • Was für ein Fehler ist denn drin? Bringt der Compiler einen Fehler oder der Linker? Oder gibt das Programm nicht das aus, was es soll?

    Es ist etwas schwierig dir zu helfen, wenn man keinen konkreten Hinweis auf den Fehler bekommt.

    Was genau geschieht kann man leicht erklären:

    #include <iostream>
    #include <conio.h>
    
    using namespace std;
    
    int main()
    {
       //netstat -n aufrufen und Ausgabe in Datei puffer.txt speichern
    	system("netstat -n > puffer.txt");
    	string line;
    
       //Datei puffer.txt öffnen	
    	ifstream file ("puffer.txt");
       //Solange von cin (Standardeingabe) einlesen bis ein Fehler auftritt (bzw. Dateiende)
    	while(getline(cin,line))
    	{
       //Eingelesene Zeile am Bildschirm ausgeben
    	    cout << line << endl;
    	}
    
       //Datei schließen
    	file.close();
    
       //Automatisches Schließen verhindern, wenn man das Programm nicht
       //in der Konsole ausführt (was man normalerweise tun sollte).
    	getch();
       //Rückgabewert (vermutlich mit positiven Ergebnis)
    	return 0;
    }
    

    Warum liest du eigentlich von der Standardeingabe (cin) ein und nicht von deiner Datei (file)??



  • Ich glaube genau das ist der Fehler AJ 😉

    MfG SideWinder



  • ifstream file ("puffer.txt");
    

    in dieser zeile zeigt mir der dev einen fehler... o_O



  • #include <fstream>

    MfG SideWinder



  • ah ok danke euch 🙂

    musste halt noch cin in file ändern 🙂



  • hab noch ne kleine frage:
    was ist der unterschied zwischen dem datentyp "string" und dem datentyp "char"
    wenn ich bei char mehrere zeichen mach, dann muss ich ja eine anzahl hintendran machen...
    aber bei string braucht man das anscheinend nicht...
    kann man den string datentyp praktisch unendlich groß machen? (also mal abgesehen vom speicher...)


Anmelden zum Antworten