Bonjour ,
Si j'exécute le code suivant, pas de problèmes ...
Cependant, à partir d'un tableau de pointeurs initialisés en NULL, je veux remplir ma commande, au fur et à mesure ,
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
16
17
18
19
20
21
22
23
24
25
26
27 #include <stdio.h> #include <string.h> #include <stdlib.h> #include <time.h> #include <assert.h> #include <errno.h> #include <ctype.h> #include <unistd.h> #include <sys/types.h> #include <sys/wait.h> #define TRUE 1 #define FALSE 0 #define DEVICE "/dev/sda1" #define FICHIER "diskspace.txt" int main() { char * argument[] = {"ps","-a",NULL}; execv("/usr/bin/ps",argument); exit(EXIT_SUCCESS); }
Les strcpy ne marchent pas et cela et bien embêtant car la commande système doit être paramètrable.
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
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31 #include <stdio.h> #include <string.h> #include <stdlib.h> #include <time.h> #include <assert.h> #include <errno.h> #include <ctype.h> #include <unistd.h> #include <sys/types.h> #include <sys/wait.h> #define TRUE 1 #define FALSE 0 #define DEVICE "/dev/sda1" #define FICHIER "diskspace.txt" int main() { char * argument[] = {NULL,NULL,NULL}; strcpy(argument[0],"ps"); strcpy (argument[1],"-al"); execv("/usr/bin/ps",argument); exit(EXIT_SUCCESS); }
Comment faire ? ( avec la dernière ligne du tableau se terminant par le pointeur NULL )
Partager