hello tout le monde.
mon probleme: lancer en parallele (avec l'utilisation de processus fils ) 4commandes à la fois. ces commandes etant inscrites dans un fichier texte.
au debut mon idée etait de :
1.faire une lecture du fichier
2.recuperer chaque ligne dans un tableau tampon et utiliser la fonction execv()
quelqu'un aurait il une idée plus simple.
voici mon 'code'
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
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66 #include <sys/types.h> #include <sys/stat.h> #include <fcntl.h> #include <unistd.h> #include <stdlib.h> #include <stdio.h> #define BUFFSIZE 4096 #define LINE_LIMIT 512 #define PROCESS_LIMIT 4 #define PARAMETER_LIMIT 10 #define COMMAND_LIMIT 100 main() { char tampon1[LINE_LIMIT]; char tampon2[LINE_LIMIT]; char tampon3[LINE_LIMIT]; char tampon4[LINE_LIMIT]; char tampon5[LINE_LIMIT]; char tampon6[LINE_LIMIT]; char tampon7[LINE_LIMIT]; char tampon8[LINE_LIMIT]; char tampon9[LINE_LIMIT]; char tampon10[LINE_LIMIT]; char tampon11[LINE_LIMIT]; char tampon12[LINE_LIMIT]; char tampon13[LINE_LIMIT]; char tampon14[LINE_LIMIT]; char tampon15[LINE_LIMIT]; int filedes,nbline=0,nb_charlu,i; char BUFF[BUFFSIZE]; /*On va ouvrir le fichier qui contient noos processus*/ filedes = open("/home/Documents/Programation/monfic.txt",O_RDONLY,0); /*Nous allons à present chercher le nombre de lignes dans notre fichier texte equivalant alors au nombre de commandes à executer*/ while((nb_charlu=(read(filedes,BUFF,BUFFSIZE)))>0)/*Le 0 pour dire tant qu'on est pas à la fin du fichier on continue la lecture*/ { for(i=0;i<=nb_charlu;i++) { if(BUFF[i]=='\n') { nbline = nbline + 1; } } } /* On teste si le fichier respecte bien la constante COMMAND_LIMIT = 100*/ if(nbline > COMMAND_LIMIT) { printf("ATTENTION trop de commandes dans ce fichier!!!!!\n"); } else printf("Fichier OK et %d à executer dans le fichier\n",nbline); /*ESSAYons a present de mettre chaque commande à executer dans un tableau commande_i_[]*/ ????????????????????????????????????????????????????? while((nb_charlu=(read(filedes,BUFF,BUFFSIZE)))>0)/*Le 0 pour dire tant qu'on est pas à la fin du fichier on continue la lecture*/ {
Partager