Linux(Ubuntu) Anwendugen im terminal unabhängig
-
ohh maan, danke supertux, nur da gibt es ein Problem... ich bin noch voll am anfang und habe fork noch nie gehört und mit der exec kenne ihcmich nicht aus, ich werde mich morgen ein wenig damit befassen. Wenn ich dann den code überarbeitet habe, melde ich mich nochmal.Danke!!!
Mfg André N,
-
Also so geht es jetzt:
#include <iostream> using namespace std; int main() { int wahl; do{ cout << "Menue" << endl; cout << "Firefox? -> 1 <-" << endl; cout << "Code::Blocks? -> 2 <-" << endl; cout << "Pidgin? -> 3 <-" << endl; cout << "Skype? -> 4 <-" << endl; cout << "recordMyDesktop? -> 5 <-" << endl; cin >> wahl; switch(wahl) { case 1: { system("firefox"); system("clear"); break; } case 2: { system("codeblocks&"); system("clear"); break; } case 3: { system("pidgin&"); system("clear"); break; } case 4: { system("skype&"); system("clear"); break; } case 5: { system("gtk-recordMyDesktop&"); system("clear"); break; } } }while(1); }
Da ist aber immernoch ein Problem: Es gibt ja unter Windows das schöne und doch unkomplexe, dass die dateiendungen dem System sagen, was sie zu tuhen haben, diese wäre in C++ am anfang immer .exe, nun das Programm öffnet sich dann in der Kosnole von windows, eher gesagt in einem Fenster. Dummerweise weiß ich nicht, wie ich Programme in Linux schreibe und sie dann in der Konsole öffne, mir ist klar, dass man eig. keine endung braucht, aber dann sehe ich die Anwendung nur in den Prozessen und sie schaufeln ihn hoch, aber öffnen tut sich nichts. Kann mir jemand verraten wie ich es schaffe, ein Programm in einem Fenster unter Linux zum laufen bringe nur mit einem Doppelklick?
Danke!!!
Mfg André N.
-
Mega_Noob schrieb:
Kann mir jemand verraten wie ich es schaffe, ein Programm in einem Fenster unter Linux zum laufen bringe nur mit einem Doppelklick?
Im Normalfall indem Du dort, wo Du das Icon anlegst "In Konsole starten" ankreuzt. Bietet der Desktop sowas nicht an, musst Du das Programm selbst in einer Konsole starten, z.B. mit "xterm 'myprog'".
-
Danke LordJaxom, aber ich habe das so alles nicht korrekt verstanden. Tut mir leid, ich weiß nicht, wie du das meinst mit
"xterm 'myprog'"
.
Ich hoffe Ihr könnt mir noch ein wenig helfen,. wie ich mein Programm immer in der "Konsole" starte, ohne das ich die Anwendung in das Terminal (Konsole) zu ziehen.
Danke schonmal!
Mfg André N.
-
xterm ist die Konsole.
myprog ist Dein Programm, welches in der Konsole laufen soll."xterm myprog" startet das Programm xterm (Konsole) und weist es an myprog (Dein Programm) auszuführen.
-
Lies die man-pages von man: fork(2) und man: exec(3)-Familie durch und benutze diese Funktionen. Es gibt immer ein erstes Mal.
Das größte Nachteil von
system
ist es, dass du weitgehend die Kontrolle über die Applikation verlierst, die du starten willst, weilsystem
zurückkehrt, wenn die Applikation beendet ist. Das Hinzufügen von "&" am Ende führt dazu, dass der Prozess im Hintergrund ausgeführt wird undsystem
kehrt zwar sofort zurück, aber du hast gar keine Kontrolle mehr über die gestartete Applikation.Wenn du fork/exec benutzt, bestimmst du wann und wie ein neuer Prozess ausgeführt wird. Du hast mehr Kontrolle über den Prozess und kannst ihn sogar beenden, wenn du es brauchst. Deswegen: lieber auf
system
verzichten und stattdessen fork/exec verwenden.
-
Da gibt es nur ein paar Probleme... bei der seite von fork und exec, die Seiten sind auf englisch... und Ich kapier das nicht.... aber ich bekomme morgen ein Buch (C++ Priemer) da werde ich mal schauen, was sich machen lässt, danke dennoch!!
Mfg André N
-
Englisch lernen schadet aber auch nix. Englisch ist nun mal _die_ Software Sprache. Ja ich hab auch schon code auf finnisch gesehen. Nett ist sowas nicht
Ansonsten gibbet auch deutsche manpages:
z.b.:
-
Hey, ja danke, aber leider verstehe ich aus dem ganzen rein gar nichts, da steht ja nicht wie ich es verwenden soll/kann/muss. mh... ich hoffe das Buch wird mir weiterhelfen können, nach einiger zeit...
Danke!
Mfg André N.
-
dabei muss man nur mal kurz google anschmeissen:
http://pronix.linuxdelta.de/C/Linuxprogrammierung/Linuxsystemprogrammieren_C_Kurs_Kapitel2c.shtml
bzw.:
http://pronix.linuxdelta.de/C/Linuxprogrammierung/Linuxsystemprogrammieren_C_Kurs_Kapitel2.shtml#2_2