Lancer appl depuis Terminal dans programme c

Résolu/Fermé
LelLex Messages postés 1628 Date d'inscription mercredi 18 février 2009 Statut Membre Dernière intervention 5 septembre 2012 - Modifié par LelLex le 4/12/2010 à 23:11
mamiemando Messages postés 33077 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 18 avril 2024 - 8 déc. 2010 à 19:26
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.
A voir également:

3 réponses

mamiemando Messages postés 33077 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 18 avril 2024 7 748
7 déc. 2010 à 19:00
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
1
LelLex Messages postés 1628 Date d'inscription mercredi 18 février 2009 Statut Membre Dernière intervention 5 septembre 2012 112
7 déc. 2010 à 23:36
Merci, ça marche impeccable. J'avais oublié l'étoile devant la définition du processus. Maintenant, je dois chercher comment lancer le processus en premier plan. ;-)
0
mamiemando Messages postés 33077 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 18 avril 2024 7 748
8 déc. 2010 à 08:24
Tu as d'autres alternatives à popen comme execve. Je n'ai pas très bien compris ce que tu appelais "au premier plan" ? Tu parles en terme de processus (commande fg) ou au sens graphique ?
0
LelLex Messages postés 1628 Date d'inscription mercredi 18 février 2009 Statut Membre Dernière intervention 5 septembre 2012 112
8 déc. 2010 à 12:37
Ah ouais, je vais aller fouiner sur "execve". Au sens graphique, voilà.
0
mamiemando Messages postés 33077 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 18 avril 2024 7 748
8 déc. 2010 à 19:26
Ouvre un nouveau fil de discussion on va chercher.
0
mamiemando Messages postés 33077 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 18 avril 2024 7 748
Modifié par mamiemando le 5/12/2010 à 13:16
Tu peux utiliser la fonction popen.

man popen


Si le processus est invoqué avec succès, pense à faire un pclose.

Bonne chance
0
LelLex Messages postés 1628 Date d'inscription mercredi 18 février 2009 Statut Membre Dernière intervention 5 septembre 2012 112
7 déc. 2010 à 00:17
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.
0