popen marche pas ??? [Résolu] - C - Programmation
Marsh Posté le 18-09-2009 à 15:14:56
Salut à tous, Alors, mon environnement: - RHEL 5.3, gcc-4.1.2, gtk+ 2.10 Voilà ce que je veux faire: lancer un mount, lire le résultat et l'afficher à l'écran. Chose qui est censé être simple, mais là je ne comprend pas et je n'arrive pas à voir d'où viens le problème. Voilà le petit bout de code: (simplifié avec de gros tableau )
Voilà, or sur mon terminal j'ai ça qui s'affiche:
ERROR: ld.so: object 'prof_agent.so' from LD_PRELOAD cannot be preloaded: ignored. mount: seul l'usager ROOT peut faire cela GOT:
Donc, moralité: t_error est vide (je GOT rien...). Donc, popen, ben je sais pas où qu'il passe le pipe, car t_error est vide... Si quelqu'un peut m'aider !!!!! Car là je comprend plus rien. Merci, Willits Edit: Résolu tout seul. (A chaque fois que je poste un topic je trouve 10 min après la solution). mount retourne tout ces messages dans stderr (et pas stdout), donc pour récupérer stderr avec popen, il faut ajouter "2>&1" après la commande mount. Celà donne: gchar * t_mount_cmd = g_strdup_printf("mount %s %s 2>&1", t_device, MOUNT_POINT); En espérant que ça aide quelqu'un. Willits
Make sure you enter the(*)required information where indicate.HTML code is not allowed
Marsh Posté le 18-09-2009 à 15:14:56
Salut à tous,
Alors, mon environnement:
- RHEL 5.3, gcc-4.1.2, gtk+ 2.10
Voilà ce que je veux faire: lancer un mount, lire le résultat et l'afficher à l'écran.
Chose qui est censé être simple, mais là je ne comprend pas et je n'arrive pas à voir d'où viens le problème.
Voilà le petit bout de code: (simplifié avec de gros tableau )
Voilà, or sur mon terminal j'ai ça qui s'affiche:
ERROR: ld.so: object 'prof_agent.so' from LD_PRELOAD cannot be preloaded: ignored.
mount: seul l'usager ROOT peut faire cela
GOT:
Donc, moralité: t_error est vide (je GOT rien...). Donc, popen, ben je sais pas où qu'il passe le pipe, car t_error est vide...
Si quelqu'un peut m'aider !!!!! Car là je comprend plus rien.
Merci,
Willits
Edit: Résolu tout seul. (A chaque fois que je poste un topic je trouve 10 min après la solution).
mount retourne tout ces messages dans stderr (et pas stdout), donc pour récupérer stderr avec popen, il faut ajouter "2>&1" après la commande mount.
Celà donne:
gchar * t_mount_cmd = g_strdup_printf("mount %s %s 2>&1", t_device, MOUNT_POINT);
En espérant que ça aide quelqu'un.
Willits
Message édité par Willits le 18-09-2009 à 15:29:00