Neuer Terminal unter Linux mit C

Alex G. schrieb:
> Hallo,
> ich habe ein C-Skript das mit Hilfe des system() befehls einige bash
> kommandos ausführen kann.

Ich nehm an ein c Programm, das kompiliert werden musste... Ein Skript 
wird ja interpretiert.

Vielleicht hilft dir:

http://www.tutorials.de/forum/linux-unix/348599-neues-terminal-fenster-fuer-bash-scripte.html

hier steht wie man ein Fenster für Befehle öffnen kann, vielleicht 
kannst du dir das ja in system() rein flicken. Hier werden dann Skripte 
für die bourne again shell verwendet.

Ich google mal noch ein bisschen danach :-D

Sebastian

P.S. ach ja, hilfreich sind noch Informationen wie z.B. welche konsole 
du verwendest, ob du kde 3.5 oder 4.2 oder gar gnome verwendest, welchen 
befehl du aufrufen möchtest und so weiter...
OP Persönliche Seite
Vielen dank für deine Antwort.
Sebastian Brendler schrieb:
> P.S. ach ja, hilfreich sind noch Informationen wie z.B. welche konsole
> du verwendest, ob du kde 3.5 oder 4.2 oder gar gnome verwendest, welchen
> befehl du aufrufen möchtest und so weiter...
Ich benutze gnome (Ubuntu9.10) und ich möchte diesen Befehl ausführen:
$ rfcomm connect /dev/rfcomm0 00:XX:XX:XX:XX:XX 1


> Ich nehm an ein c Programm, das kompiliert werden musste... Ein Skript
> wird ja interpretiert.
Du nimmst richtig an :)

Warum ich den Befehl in einem neuen Terminalfenster ausführen will?
Der Grund ist einfach der Befehl belegt den ganzen Terminal und ich 
brauche den Terminal im folgenden für mein C-Programm noch.
Gast
warum das drive nicht fest einbinden so das es so bald es auftaucht 
automatisch eingebunden wird ?

in der /etc/bluetooth/rfcomm.conf z.b.

rfcomm0 {
        # Automatically bind the device at startup
        bind yes;
        # Bluetooth address of the device
        device 00:00:00:00:00:00;
        # RFCOMM channel for the connection
        channel 1;
        # Description of the connection
        comment "BT-Bus Platine";
}
Gast
Unter Unix-Systemen gibt es i.d.R. keinen Mechanismus, aus einem Prozess 
einen zweiten zu starten, wie man es erwarten würde.
Der übliche Weg besteht darin, den aktuellen Prozess mit fork() 
aufzuspalten und einen der beiden Prozesse danach mittels exec*() zu 
ersetzen.

Sinnvoll sind auch pipe(), dup(), dup2() und/oder popen().
Das ist richtig, wenn man sich die OS-Seite ansieht.
Ändert aber nichts daran, daß auch unter Unix und Linux in der
C-Lib ein system() ist, in dem letztlich natürlich fork() und
exec() stattfinden.
Ich denke, mit system() kommt der TE zügiger voran.
Gast
>Der Grund ist einfach der Befehl belegt den ganzen Terminal und ich
>brauche den Terminal im folgenden für mein C-Programm noch.

Ist das Starten dieses Befehls mit "befehl &" im Hintergrund keine 
Option?

Gast
Gast
1
system("xterm -e 'rfcomm connect /dev/rfcomm0 00:XX:XX:XX:XX:XX 1'")

Wenn das Fenster nach Ausführung des Kommandos offen bleiben soll, 
kannst du's auch so schreiben:
1
system("xterm -e 'rfcomm connect /dev/rfcomm0 00:XX:XX:XX:XX:XX 1; read'")
OP Persönliche Seite
Hi,
vielen Dank für eure Antworten.

Einbinden ist keine so gute Idee, ich werde das Programm auf mehreren 
verschiedenen Rechnern laufen lassen, die auch ständig wechseln.

> system("xterm -e 'rfcomm connect /dev/rfcomm0 00:XX:XX:XX:XX:XX 1; read'")

Das funktioniert schon ganz gut.
Das Problem ist jedoch der rfcomm Befehl muss nebenbei laufen, das heißt 
das C-Programm und der Befehl müssen gleichzeitig laufen. Das C-Programm 
wird nicht fortgesetzt solange der Befehl ausgeführt wird.

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 16 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.