vinoromano |
Je me débrouille un peu en C, le seul langage que j'apprends.
Je m'explique à nouveau.
J'ai déjà fait un programme pour lire un fichier contenant des informations spécifiques. Mon problème est de pouvoir directement utiliser le fichier dans mon programme.
En supposant que le fichier est par exemple test.dat et que je connais sa structure, voilà le programme qui va avec: #include<stdio.h>
#include<string.h>
#include <stdlib.h>
typedef struct {
int nb1;
int nb2;
char t1[40];
char t2[40];
char t3[40];
char t4[40];
}bloc;
int nblignefichier(char arg2[40])
{
int n = 0; /* nombre de lignes lues */
char ligne[256];
FILE *f = fopen( arg2, "r" ); /* ouvre en lecture */
if (f==NULL) {
printf("erreur ouverture\n" );
return 0; /* sort du programme (code erreur 1) */
}
while (fgets( ligne, 256, f ) != NULL) { /* essai lecture ligne */
n++; }
fclose(f); /* ferme le fichier */
return n;
}
int main(void)
{
int i,a,taille,pos1;
/* Sélectionner le fichier*/ exec("" );
/*FILE *fichier = popen( ""ls /proc", "r" );*/
FILE* lecture = fopen("test.dat","r" );
taille = nblignefichier("test.dat" );
//création du tableau de taille "taille"
bloc b[taille];
char nb[255];
//remplissage du tableau
for(i=0;i<taille;i++)
{
fscanf(lecture, "%s", &nb);
b[i].nb1 = atoi(nb);
fscanf(lecture, "%s", &nb);
b[i].nb2 = atoi(nb);
fscanf(lecture, "%s", &b[i].t1);
fscanf(lecture, "%s", &b[i].t2);
fscanf(lecture, "%s", &b[i].t3);
fscanf(lecture, "%s", &b[i].t4);
}
/* pclose(fichier);*/
fclose(lecture);
//affichage du tabeau
for(i=0;i<taille;i++)
{
printf("%d %d %s %s %s %s\n",b[i].nb1,b[i].nb2,b[i].t1,b[i].t2,b[i].t3,b[i].t4);
}
system("PAUSE" );
// la 1ere colonne s'obtient avec b[i].nb1
// la 2e colonne s'obtient avec b[i].nb2
return EXIT_SUCCESS;
}
Cependant, test.dat doit être le fichier contenant le résultat de 'ls /proc' selon cet exemple.
Je voudrais faire la même chose pour le résultat de 'ifconfig'...
Le problème est de pouvoir mettre dans un fichier chaque résultat de chaque commande.
Je pousse des cheveux blancs, aidez moi!!!
Merci
|