j'ai des problemes avec la famille des fonctions execve,execlp ... que je n'arrive pas a utuliser sur mon pc. par exemple avec la fonction execve:
ce programme n'execute pas la commande en fait il ne fait rien.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 #include <unistd.h> #include <stdio.h> int main() { char cmd[32]; printf("cmd?:"); scanf("%s",cmd); execve(cmd,NULL,NULL); return 0; }
et celui la avec execlp me donne une erreur de segmentation:
et gdb affiche le message suivant:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 #include <unistd.h> #include <stdio.h> int main() { char cmd[32]; printf("cmd?:"); scanf("%s",cmd); execlp(cmd,NULL,NULL); return 0; }
Program received signal SIGSEGV, Segmentation fault.
0x00007ffff74c187a in strrchr () from /lib/libc.so.6
(gdb) bt
#0 0x00007ffff74c187a in strrchr () from /lib/libc.so.6
#1 0x000000000040a36e in ?? ()
#2 0x0000000000407bfe in ?? ()
#3 0x00007ffff7460abd in __libc_start_main () from /lib/libc.so.6
#4 0x0000000000402709 in ?? ()
#5 0x00007fffffffe478 in ?? ()
#6 0x000000000000001c in ?? ()
#7 0x0000000000000000 in ?? ()
(gdb)
Je sollicite de toute urgence une aide car je deprime rien qu'au essaye toutes les combinaisons mais sans succes. Merci d'avance.![]()
Partager