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:
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;
}
ce programme n'execute pas la commande en fait il ne fait rien.
et celui la avec execlp me donne une erreur de segmentation:
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;
}
et gdb affiche le message suivant:
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.