String ausschneiden!?!?!? oder sowas ???



  • hi zusammen,

    ich bin dabei ein kleines prog zu schreiben. welches überprüft ob gewisse prozesse laufen. ich bin noch nicht sehr weit ... (und schon probleme) 👎

    #include <string>
    #include <iostream>
    
    main()
    {
            system("cat server | grep 'set PROCS' | head -1");
    
    return(0);
    }
    

    ich lese aus einem server start skript eine zeile aus, die mir sagt welche processe laufen sollen

    BILDSCHRIMAUSGABE:
    linux temp2> ./check_procs
    set PROCS = "srv1 hugo2 hugo4711 Server20"
    linux temp2>

    wie bekomme ich die einträge die zwischen den " "
    sind in ein array??(das ganze soll unter LINUX/UNIX funktionieren)

    Vielen Dank
    Gruß
    Navigato



  • mit system übergibst du einfach einen String an eine Shell, du liest nichts ein, dafür brauchst du pipes (man: pipe(2)).

    Übrigens ist main() in C++ nicht erlaubt und iostream und string brauchst du auch nicht einbinden für man: system(3)



  • ...oder besser noch: Nimm die Funktion popen(). Dann kannst du die Ausgabe des Shell-Kommandos direkt in dein Programm einlesen. Mit sscanf() kannst du dann die einzelnen Worte herausziehen.

    (Genaueres dazu findest du übrigens in meinem Buch "C und Linux". 😉 )

    Martin



  • ...oder du machst es mit nem shell-script 😉
    bei so kleinen Aufgaben wunderbar dafür geeignet...



  • Crax schrieb:

    ...oder du machst es mit nem shell-script 😉
    bei so kleinen Aufgaben wunderbar dafür geeignet...

    normalerweise würde ich dir auch da zustimmen aber wenn der ausbilder/chefe sagt mach in c/c++ 😡 ...
    ja dann haste wohle keine andere möglichkeit.

    aber ich habs jetzt endlich geschaft 🙂


Anmelden zum Antworten