Systemprogrammierung: im Kind ein Programm aufrufen



  • hallo!

    ich wollte mal fragen wie ich unter linux in einem kindprozess (was dann eine neue konsole ist) ein neues programm aufrufen kann?!

    bisher rufen ich per popen:

    FILE *pfile;
    
    pfile = popen( "konsole", "w" );
    

    die konsole auf. nun wollte ich in der konsole die erscheint automatisch ein programm ablaufen lassen - z.b. "ls -l" (so als test). wie kann ich das anstellen? muss ich dann noch mal popen verwenden oder geht es irgendwie eleganter/anders ?

    thx im voraus f├╝r jede hilfe ­čÖé

    mit freundlichen gruessen



  • Warum rufst du die Konsole ├╝berhaupt mit popen auf? Hat die denn ├╝berhaupt eine Standardeingabe? Willst du die Konsole fernsteuern oder nur einen Befehl ausf├╝hren?



  • hallo bashar erst mal thx f├╝r die schnelle antwort.
    ich wollte konsole (oder xterm, eterm ...) aufrufen, weil ich die ausgabe des programmes dem benutzer sehen lassen wollte, und davon ausgehe, dass er das programm (um beim bsp. zu bleiben "ls") nicht direkt selbst aus einer konsole startet.

    Willst du die Konsole fernsteuern oder nur einen Befehl ausf├╝hren?

    ich wille eigenltich nur den befehl aufrufen.



  • "konsole -e ls -l"

    popen ist zwar nicht sehr elegant, aber scheint ja zu funktionieren. Normalerweise w├╝rde man das mit fork/exec machen.



  • popen nimmt einem doch die abeit von exec, fork und das schliessen der seite die man nicht verwendet im eltern- und kindprozess ab ­čÖé



  • prosatanos schrieb:

    das schliessen der seite die man nicht verwendet

    Du verwendest ja ├╝berhaupt keine Seite.



  • ich meinte das jetzt allgemein auf popen bezogen.

    btw: funktioniert dein vorschlag einwandfrei thx ­čÖé



  • prosatanos schrieb:

    Willst du die Konsole fernsteuern oder nur einen Befehl ausf├╝hren?

    ich wille eigenltich nur den befehl aufrufen.

    Warum rufst du dann nicht gleich ls auf anstatt den umweg ├╝ber ne konsole?



  • das soll einfach nur mal ne kleine ├╝bung sein ­čÖé


Log in to reply