Essayez d'exécuter la commande codes de ligne de c++ linux
J'ai essayé le code suivant, pour communiquer avec la ligne de commande à partir du code c++.
#include<iostream>
#include<cv.h>
int main()
{
system("gnome-terminal");
system("cd");
}
Le gnome-terminal de commande est en cours d'exécution fine. Après je ferme le terminal, lorsque m'attends à ce que le cd-rom pour exécuter, cependant, n'est pas le cas. Pourriez-vous s'il vous plaît aidez-moi et le point de la raison? Merci. Je m'attendais à la fonction de faire de la cmd aller vers le répertoire d'accueil de l'
mais il n'est pas. suis travail sous linux
Je l'ai essayé, même en supprimant gnome. simple lecteur de cd ne fonctionne pas. suis-je en train de faire quelque chose rong>?
Si j'essaie de la ls, il semble fonctionner correctement!
Mon objectif principal est d'ouvrir un nouveau terminal, et exécuter des commandes sur ce nouveau terminal par le présent programme, qui a inauguré le nouveau terminal. Pourriez-vous svp me dire comment je peux faire??
suis en train d'élaborer le code. c'est la phase de démarrage. Merci pour votre tipw :). Va le corriger.
Voulez-vous dire que vous voulez changer le répertoire de travail de la coquille à partir de laquelle vous exécutez le programme C++?
oui. J'essayais. Maintenant, j'ai pensé essaie d'exécuter des commandes dans le nouveau terminal ouvert, à partir du programme c++ ouvert dans les différents shell! pourriez-vous m'aider ici? veuillez voir le modifier.
superuser.com/questions/198015/... je pense que c'est wat suis à la recherche d'. Mais je ne suis pas en mesure de comprendre la réponse. Pourriez-vous pls vérifier si je suis sur la bonne voie @aschepler
OriginalL'auteur Lakshmi Narayanan | 2013-01-26
Vous devez vous connecter pour publier un commentaire.
Si vous souhaitez exécuter un programme et d'attendre qu'elle se termine avant l'exécution de la ligne suivante, jetez un oeil à cette page et un exemple de code ici: http://www.thegeekstuff.com/2012/03/c-process-control-functions/
Mais si vous voulez lancer gnome-terminal et exécuter une commande dans l'un des nouveaux fenêtre, faire ceci:
Le
system
fonction est équivalente à fairefork
,exec
, etwaitpid
, mais plus facile. (Pour quand vous ne voulez pas le faire tout les redirections, des tuyaux, etc.)voir mon edit
dois-je utiliser les caractères d'échappement pour le devis?? Je sens quelque chose qui est un peu absent.
Oui, vous pouvez utiliser un seul quota également
OriginalL'auteur Vahid Farahmand
La
system
fonction crée un shell enfant processus pour exécuter la commande spécifiée.cd
est une commande shell qui change le répertoire de travail courant du processus du shell.De sorte que l'enfant est
cd
fonctionne probablement très bien, mais il n'a pas d'effet sur votre programme C++, qui est un processus différent.Au lieu de cela, vous devriez regarder l'appel système Linux
chdir
.Bien que
chdir
va changer le MDC pour votre processus, et non pas son parent (le shell). Sonne comme ce que l'OP veut vraiment, c'est un script shell.Si vous voulez exécuter quelque chose DANS le gnome-terminal, vous aurez besoin de faire quelque chose de différent que le code que tu viens de posté. Il existe plusieurs façons vous pouvez obtenir en quelque chose comme ce que vous demandez - vous peut générer un script shell fichier et l'exécuter, ou vous pouvez ouvrir un tuyau et d'envoyer des commandes par l'intermédiaire de qui - ou même ouvrir un pseudo-terminal et utiliser le "maître" du côté de la pseudoterminal "d'écrire" à la réalité de terminal.
Même
chdir()
ne serait probablement pas l'effet désiré, car il ne ferait que changer le répertoire de travail pour le programme C, pas pour le parent shell. Fonction Shell peut-être?Oui, chdir() ne fonctionne pas pour moi. Je suis un débutant et je ne suis pas en mesure de comprendre beaucoup de vos commentaires. Je suis vraiment désolé, mais ould-vous expliquer wat je peux faire??
OriginalL'auteur aschepler
Merci pour votre aide!! Cette commande a fonctionné parfaitement bien à partir de ce lien
https://superuser.com/questions/198015/open-gnome-terminal-programmatically-and-execute-commands-after-bashrc-was-execu
et j'ai entré les commandes respectives dans la nouvelle fenêtre. Mais pour changer de répertoire de travail dans le shell travaille o, je n'ai pas encore compris.
ouais. en fait, j'ai été voir un autre lien,et seulement après que je suis de retour, vu ur réponse, et donc vérifié cela a à b de la réponse. Mais ce lien a également déclaré à propos de l'incorporation de cette exec commande bash et d'autres choses, ce qui était d'information, a ainsi voulu mettre en évidence ici.
donc, ma réponse vous a aidé et ma réponse est exactement ce que vous cherchez, si vous pouvez accepter la bonne réponse et fermez la question
Oh, désolé. A la recherche de quelque autre code, et je thot j'avais marqué comme réponse.
OriginalL'auteur Lakshmi Narayanan