begin process at 2010 02 10 15:00:05
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive C/C++

 > 

Archives

 > 

Au secours

 > 

Un problemme avec execve()


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Un problemme avec execve()

jeudi 9 février 2006 à 10:35:14 | Un problemme avec execve()

izou

SALUT VOILA LE PROLEMME DANS MON PROGRAMME JE VEUX UTILISER LA FONCTION execve(); POUR EXECUTER DES COMMANDES DU SHELL je fait: pid=fork(); if(p==0) { if(strcmp(inst,"ls")==0) execve("/bin/ls",Arguments); else . . les autres commandes . . }; else wait(&status); et normalemment a la fin de cette ligne j'affiche un text "Command>" et l'utilisateur retape une autre commande. le problemme c'est que le text ne s'affiche aue pour la premier fois et l'orsque je quit il affiche tous le text i.e: Command> Command> Command> . . .
jeudi 9 février 2006 à 11:05:19 | Re : Un problemme avec execve()

bouba

J'ai pas trop pigé le problème que tu as, "le text ne s'affiche aue pour la premier fois", c'est à dire ? Qu'est-ce que tu réalises après le wait dans le père ? Comment tu as faits pour que le programme repropose d'entrer des commandes ? En tout cas, si l'execve affiche bien le résultat des commandes même si c'est lorsque tu quitte le programme le problème ne doit pas venir de l'appel execve mais plutôt de la structure de ton programme, des problèmes dans tes boucles peut-être ? Les paramètres à execve sont-ils biens passés (je doute que le problème vienne de là mais on sait jamais) ? Tu peux te baser sur cet exemple si tu veux: #include #include #include int main(int argc, char** argv, char** envp) { int pid; if((pid = fork()) == 0){ /* Fils */ if(!strcmp(argv[1], "ls")) execve("/bin/ls", '\0', envp); }else{ /* Père */ } return 0; } Bonne chance. Bouba
jeudi 9 février 2006 à 18:44:02 | Re : Un problemme avec execve()

izou

non regarde voici le l'architecture du programme:

while(1)
{
printf("Cmd>");
lirecommand(&command);
verifier(commande);
executer(commande);
}
 
dans la partie lire commande on lit les parametres et on les met dans un tableau de pointeurs de type char*

la deuxiemme verifie la syntaxe et dans la dernier je fait:

int p;
p=fork()
if(p==0)
{
  if(strcmp(inst,"ls") execve("/bin/ls",arguments,NULL);
.
et les autre commandes de la meme façon chaque fois je compare puis j'execute;
perror("Echec l'hors de l'execution");
}
else
{
 wait(&status);
}

ici tous les message que je veux afficher ne s'affiche pas sauf le premier et a la fin
l'orsque je tape la commande "quit" et elle s'execute en appelant exit(0);
tous les message qui devrait etre afficher sont affichés
comma,t fair pour que le message s'affiche l'orsque on lui fauit appele
i.e:
si commande incorecte normalement un message s'affiche
mais ici il sera retader a la fin .
tu vois un peix le problemme?
vendredi 10 février 2006 à 15:34:04 | Re : Un problemme avec execve()

bouba

J'ai a peut près pigé ton problème mais je ne vois pas d'ou celà peut venir, il faudrait plus de code pour ça. Ton code est long ? Tu peux peut-être nous le montrer en entier ? Au pire envoi moi un msg privé. Bouba
vendredi 10 février 2006 à 20:44:10 | Re : Un problemme avec execve()

izou

Merci dans tous le cas



Cette discussion est classée dans : affiche, text, command, problemme, execve


Répondre à ce message

Sujets en rapport avec ce message

Ecrire du text en OpenGL (sans glut) [ par Taranael ] Hello ! Bon je dois réaliser pour l'IUT un Serveur qui affiche la reconstitution d'un puzzle (gérée par un autre programme) et il faut que j'affiche s Align Text dans CListCtrl [ par crocejf2000 ] Dans une CListCtrl, j'ai une colonne ou il faut que je puisse tronquer le texte a gauche et non pas a droite comme fait par défaut, par exemple, j'aff Popup dans un popup [ par CyberP ] J'ai créé un programme dont la seule fenêtre est une DialogBox. J'ai rajouté une autre DialogBox pour le "A propos de" mais celle-ci ne s'affiche pas Ajouter du text a un fichier sans effecer le contenue [ par cybermatthieu ] Je suis a la recherche une methode pour enregistrer du text dans un fichier text. Le probleme est que je rechercher dans le fichier text un TAG HTML p Erreur "Abandon" [ par patrickbateman ] Bonjour a tous,j'ai cree un petit programme en c, une fois compile par GCC l'execution se passe tt a fait normalement sauf qu'il affiche "Abandon" a l changer le nom du prog qui s'affiche ds la barre des tache ( builder ) [ par lanfeust41 ] et bien tout est dans le titre : comment change t'on le nom qui s'affiche dans la barre des tachesla proprité caption de la form ne change que le le n merci mais je voudrai que la photo s'affiche dans la boite de dialogue [ par djmix73 ] dans l'exemple on a un apercu de la photo mais dans la fenetre du disque dur moi je veux dans la fenetre de la boite de dialogue Print Preview MFC [ par crocejf2000 ] Salut,Dans mon appli MFC (.net), j'affiche des images et des lignes dans OnDraw se trouvant dans la class dérivée de CViewA l'écran il n'y a aucun pro Problemme de lecture sur port LPT [ par Hevelina ] Bonjour, je me demande pourquoi quand je met 5V sur certaines broches du registrede control et que je lis je ne voit rien de ce que j ai mis si vous a erreur visual c++ [ par pipic ] G les erreurs suivantes qui s'affichent apres execution de mon programme (Visual c++ avec MFC)Debug Assertion FailedFile:afx.inlLine:122Que faut-il y


Nos sponsors


Sondage...

CalendriCode

Février 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 1,685 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales