Ergebnis 1 bis 6 von 6
  1. #1
    NoClose Wurm
    Registriert seit
    31.07.2008
    Beiträge
    171

    Standard Dauerhaft per C-Programm Befehle in eine(!) CMD eingeben [Hilfe]

    Nabend Leute,

    Ich schreib gerade an einer remoteshell und stehe vor einen ernsthaften knackpunkt.

    Im momment ist es so, dass ich die Befehle vom Clienten bekomme, dann über eine Pipe (http://msdn.microsoft.com/en-us/libr...8VS.80%29.aspx) ausführen lasse und über die Pipe die Ausgabe zum Clienten schicke.

    Das Problem ist, wie ihr euch sicher denken könnt, dass die CMD auf und nach dem Befehl wieder zugeht (Bildlich gesprochen). D.h. cd irgendeinenOrdner wird nicht funktionieren, weil die cmd danach wieder zu ist, und wieder im Exec-Ordner aufgeht.

    Daher meine Frage:

    Wie kriege ich eine dauerhafte cmd zu stande, der ich Befehle übermitteln kann und wo ich die Ausgaben wieder auslesen kann ?

    MfG

    Deshoax
    Programmiersprache: C

  2. #2
    Der mit Anatidaephobie Avatar von blackberry
    Registriert seit
    11.07.2008
    Beiträge
    2.350

    Standard

    Versuch's mal mit popen.
    Das ganze funktioniert wie fopen, nur eben mit Prozessen.

    Ist aber kein ANSI-C.

    PDFTT cr3w a.E. — ReiDC0Re, lindor, Sera, berry
    please do feed the trolls crew and elk
    Ehrenwerte Mitglieder im Ruhestand: OpCodez, SFX.
    "Was sich blackberry gerade denkt" — Vorsicht! Frei laufender Wahnsinn!
    Zitat von fuckinghot19: "PS: Blackberry ist auf FH der Trollkönig ^^."
    An dieser Stelle danke ich all meinen Fans und Hatern gleichermaßen ^.^

  3. #3
    NoClose Wurm
    Registriert seit
    31.07.2008
    Beiträge
    171

    Standard

    popen ist der Befehl unter Unix.
    Ich wollte die "Shell" unter windows aufbauen.

    EDIT: Ich glaub, das trifft es , was ich machen möchte.
    Geändert von Deshoax (20.02.2010 um 21:46 Uhr)
    Programmiersprache: C

  4. #4
    Der mit Anatidaephobie Avatar von blackberry
    Registriert seit
    11.07.2008
    Beiträge
    2.350

    Standard

    Zitat Zitat von Deshoax Beitrag anzeigen
    popen ist der Befehl unter Unix.
    Dann hält mein Win7 sich wohl für ein UNIX-artiges Betriebssystem:


    Sourcecode:


    Compiler:
    MinGW gcc (kam mit Dev-C++ 4.9.9.2)

    _popen wird von msvcrt.dll exportiert.


    MfG. BlackBerry

    PDFTT cr3w a.E. — ReiDC0Re, lindor, Sera, berry
    please do feed the trolls crew and elk
    Ehrenwerte Mitglieder im Ruhestand: OpCodez, SFX.
    "Was sich blackberry gerade denkt" — Vorsicht! Frei laufender Wahnsinn!
    Zitat von fuckinghot19: "PS: Blackberry ist auf FH der Trollkönig ^^."
    An dieser Stelle danke ich all meinen Fans und Hatern gleichermaßen ^.^

  5. #5
    Stanley Jobson Avatar von GregorSamsa
    Registriert seit
    23.08.2008
    Beiträge
    729

    Standard

    Alternativ kannst du natürlich auch den CD-Befehl abfangen, und chdir(...) benutzen, um dem Pfad den C-Programmes zu ändern

  6. #6
    NoClose Wurm
    Registriert seit
    31.07.2008
    Beiträge
    171

    Standard

    Dann muss ich mich bei dir Entschulidgen Blackberry, du hattest recht. Jedoch krieg ich mit popen im VisualStudio nen Error, deswegen danach mit Dev-Cpp probiert und es funktioniert.... so wie vorher auch.
    Das heißt, dass sich mit dem popen-Befehl praktisch eine cmd Instanz öffnet und danach wieder schließt. Ich wollte es aber so umsetzten, dass ich eine permanete Instanz habe, in der ich Befehle eingeben kann und wieder empfangen kann.

    Mein Problem ist halt jetzt, dass ich den Code samt Dokumentation der MSDN über Childprozesse ziemlich undurchsichtig finde.

    Ich habe gerade eben probiert, ob ich da nich die Befehle per Schleife in en Char-array packen kann und dann immer wieder write read... aber dann kacken mir die Handles ab...

    UND: Da sind einfach viel zu viele Microsoft-Non-Standard-Funktionen drinne...

    Gibts da nicht irgendwie eine Allgemeinere, standardisiertere Möglichkeit, nen Childprozess zu erstellen und Stdin und Stdout mit dem Mutterprozess zu verknüpfen?
    Programmiersprache: C

Stichworte

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •