2010-06-14 3 views
1

J'ai un problème avec l'appel system ("command") en C sur un système embarqué dans linux. L'appel à l'application fonctionne bien sur la ligne de commande, mais lorsqu'il est appelé dans un script cgi compilé en utilisant la commande système, il est douloureusement lent. Toute aide appréciée?Appel linux incorporé utilisant le système

+1

Je suis curieux ... qu'en est-il de cette question qui mérite un vote négatif? L'électeur peut-il expliquer? – Mox

Répondre

2

L'utilisation de system() appelle un shell pour traiter les arguments que vous fournissez. Dans mon expérience, il est rarement utile d'avoir le shell impliqué lorsque le besoin est simplement d'exécuter une commande externe. Le shell ajoute des frais généraux, et c'est peut-être ce qui vous ralentit.

Si ce que vous faites n'a pas vraiment besoin de la coquille, puis au lieu de system() essayez d'utiliser fork() pour créer un processus enfant, suivi par exec() pour exécuter le fichier exécutable dont vous avez besoin.

+1

Il faudrait un système minuscule pour le coût de démarrage d'un obus pour faire quelque chose «péniblement» lent ... – Spudd86

Questions connexes