Bonjour
Je suis en train de creer un shell et le comportement d'execve me parait anormal.
exec[0] contient le path, exemple : "/bin/ls"
les autres cases contiennent les parametre (-l -r ...)
error m'affiche un "A" a chaque erreur.
apres execution :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 pid = fork(); if (pid == 0) { if (execve(exec[0], exec, envp) == -1) error(exec); pid = getpid(); kill(pid, SIGTERM); } else wait(0);
je ne comprend pas pourquoi j'ai une erreur si je passe un parametre, pourquoi rien ne marche avec plus d'un parametre et surtout pourquoi execve ne fonctionne plus apres ca bien que je kill le pross apres l'echeque.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 $> ls a.out main.c exec.c $> ls -r exec.c main.c a.out A $> ls a.out main.c exec.c $> ls -l -r A A A $> ls A &>
merci pour toute explications
Partager