Bonjour ,

Si j'exécute le code suivant, pas de problèmes ...

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);
}
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
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);
}
Les strcpy ne marchent pas et cela et bien embêtant car la commande système doit être paramètrable.

Comment faire ? ( avec la dernière ligne du tableau se terminant par le pointeur NULL )