Lancer appl depuis Terminal dans programme c
Résolu
Bonjour à tous,
Lancer un programme comme FF dans le Terminal c'est facile, il suffit d'écrire : $ firefox.
Mais dans mon cas, c'est différent, je compile et execute un fichier.c dans le Terminal, qui demande à l'utilisateur de rentrer un message. J'aimerais après avoir rentré firefox, que le navigateur se lance. (Pour l'exemple de FF).
Comment puis-je faire ?
Configuration : Ubuntu 10.10.
Cordialement.
Lancer un programme comme FF dans le Terminal c'est facile, il suffit d'écrire : $ firefox.
Mais dans mon cas, c'est différent, je compile et execute un fichier.c dans le Terminal, qui demande à l'utilisateur de rentrer un message. J'aimerais après avoir rentré firefox, que le navigateur se lance. (Pour l'exemple de FF).
Comment puis-je faire ?
Configuration : Ubuntu 10.10.
Cordialement.
3 réponses
-
Ben qu'est ce qui te bloque ?
#include <stdio.h> int main(){ FILE *fp = popen("ls -al /","w"); if(!fp){ fprintf(stderr,"erreur"); return 1; } printf("processus lancé avec succès !\n"); pclose(fp); return 0; }
Ce qui donne :
(mando@aldur) (~) $ gcc plop.c (mando@aldur) (~) $ ./a.out processus lancé avec succès ! total 128 drwxr-xr-x 21 root root 4096 7 déc. 19:02 . drwxr-xr-x 21 root root 4096 7 déc. 19:02 .. drwxr-xr-x 2 root root 4096 4 déc. 16:30 bin drwxr-xr-x 3 root root 4096 4 déc. 16:35 boot lrwxrwxrwx 1 root root 11 3 juin 2007 cdrom -> media/cdrom drwxr-xr-x 15 root root 3640 7 déc. 18:29 dev drwxr-xr-x 141 root root 12288 7 déc. 18:33 etc drwxr-xr-x 9 root root 4096 2 nov. 17:14 home drwxr-xr-x 2 root root 4096 3 juin 2007 initrd lrwxrwxrwx 1 root root 28 14 juin 22:53 initrd.img -> boot/initrd.img-2.6.32-5-686 drwxr-xr-x 13 root root 12288 4 déc. 16:30 lib drwx------ 2 root root 16384 3 juin 2007 lost+found drwxr-xr-x 5 root root 4096 7 déc. 18:29 media drwxr-xr-x 12 root root 4096 12 mai 2010 mnt dr-xr-xr-x 127 root root 0 7 déc. 2010 proc drwxr-xr-x 27 root root 4096 7 déc. 19:02 root drwxr-xr-x 2 root root 4096 4 déc. 16:31 sbin drwxr-xr-x 2 root root 4096 7 mai 2007 selinux drwxr-xr-x 3 root root 4096 17 nov. 2008 srv drwxr-xr-x 12 root root 0 7 déc. 2010 sys drwxrwxrwt 11 root root 32768 7 déc. 19:02 tmp drwxr-xr-x 11 root root 4096 19 sept. 2009 usr drwxr-xr-x 15 root root 4096 25 nov. 2009 var lrwxrwxrwx 1 root root 25 14 juin 22:53 vmlinuz -> boot/vmlinuz-2.6.32-5-686
Bonne chance -
Tu peux utiliser la fonction popen.
man popen
Si le processus est invoqué avec succès, pense à faire un pclose.
Bonne chance -
J'ai regardé popen avec le man, mais je vois pas trop comment l'utiliser.
En fait je voudrais faire ça :// Lancer une application if(strcmp(question, "Lance Firefox.\n") == 0) { printf("firefox\n"); }
Comment je peux intégrer popen dedans ?
Merci d'avance.