Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1942 connectés 

 


Dernière réponse
Sujet : Utilisé le fichier /proc dans un script C
black_lord libgtop [:spamafote]

Votre réponse
Nom d'utilisateur    Pour poster, vous devez être inscrit sur ce forum .... si ce n'est pas le cas, cliquez ici !
Le ton de votre message                        
                       
Votre réponse


[b][i][u][strike][spoiler][fixed][cpp][url][email][img][*]   
 
   [quote]
 

Options

 
Vous avez perdu votre mot de passe ?


Vue Rapide de la discussion
black_lord libgtop [:spamafote]
vlack Il n'y a pas des lib qui permettent de gérer les processus plutôt de faire un truc un peu crade comme ça ?
vinoromano Merci franceso
Merci Jlighty, c'est vrai, je suis tellemnt à fond que je passe à côté des trucs simples.
Merci à tous.
black_lord accéder à /proc/[0-9]*/status me parait plus judicieux
jlighty Est t-il nécessaire de comparer la liste des pid avec les processus qui s'exécutent sachant que dans /proc/<num pid>/status il y a l'état du processus ?
franceso OK, dans ce cas là, je pense que la commande popen peut t'être utile. (man popen pour les détails)
 
Par exemple:

Code :
  1. FILE *lecture=popen( "ls /proc", "r" );

vinoromano Avec les PID, je voudrais comparer avec les pid des processus qui s'exécutent ( commande ps -r) afin de détecter les processus qui ne fonctionnent pas. Ensuite grâce encore à /proc/pid/status obtenir toutes les infos sur ces processus.
Mon problème c'est de pouvoir mettre le résultat de ls /proc dans un fichier. Après je peux m'en sortir avec le langage C. C'est le seul que je connais un peu.
black_lord [:mlc]
franceso es-tu sûr de vouloir faire ça en C ?
Qu'est-ce que tu veux faire avec tes PID une fois qu'ils seront dans un tableau ?
vinoromano Bonjour tous,
En fait je veux extraire les PID dans le répertoire "/proc" et pour le faire, je voudrais mettre le contenu de /proc dans un tableau. Le programme que j'ai fait fonctionne bien quand je copie le contenu de /proc dans un fichier sous le même répertoire que mon programme.
Je voudrais directement après avoir fait la commande ls /proc mettre le résultat dans le tableau et ensuite l'utiliser.
Merci
vinoromano Bonjour tous,
En fait je veux extraire les PID dans le répertoire "/proc" et pour le faire, je voudrais mettre le contenu de /proc dans un tableau. Le programme que j'ai fait fonctionne bien quand je copie le contenu de /proc dans un fichier sous le même répertoire que mon programme.
Je voudrais directement après avoir fait la commande ls /proc mettre le résultat dans le tableau et ensuite l'utiliser.
Merci
vinoromano Bonjour tous,
En fait je veux extraire les PID dans le répertoire "/proc" et pour le faire, je voudrais mettre le contenu de /proc dans un tableau. Le programme que j'ai fait fonctionne bien quand je copie le contenu de /proc dans un fichier sous le même répertoire que mon programme.
Je voudrais directement après avoir fait la commande ls /proc mettre le résultat dans le tableau et ensuite l'utiliser.
Merci
l0ky En fait j'ai plutot l'impression qu'il veut parser le résultat d'un

ls /proc


afin de récupérer les pids et seulement ceux la.
 
Toujours est il qu'il fait fausse route. Son programme ne fera jamais ca tel qu'il est écrit. Au lieu de lister le contenu du répertoire il ouvre "fichier" hors celui ci n'existe pas...

mirtouf /proc est un pseudo-fs
 
http://www.tldp.org/LDP/lkmpg/2.6/html/x769.html ça aide ?
franceso

Citation :

Code :
  1. fichier = = cat /proc


je sais pas trop ce que tu voulais faire là, mais c'est pas du C !
 
Est-ce que tu peux expliquer plus clairement ce que tu veux (et utilise les balises cpp stp)
 
Par ailleurs, il y a plein de problèmes dans ton programme C. Es-tu sûr que :
1- tu maîtrises assez le C pour faire ce que tu veux ?
2- le C est le langage le plus adapté ?
 
Vu le type de choses que tu cherches, je pense que des langages de script comme perl seraient plus adaptés.

franceso ... et un programme en C n'est pas un script ;)
l0ky /proc n'est pas un fichier
vinoromano Bonjour tous,
Je suis entrain de faire un script pour lire le contenu du fichier /proc.
En effet, ce sont les pid qui m'intéressent et je les range dans un tableau.
Le problème, c'est que qd je fais fichier = cat /proc il me met un message d'erreur lors de la compile.
voici le script  
 
#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*/  
printf("Entrer la commande 'cat /proc'" );  
 
fichier = = cat /proc
 
FILE* lecture = fopen("fichier","r" );
taille = nblignefichier("fichier" );
//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);
 }
 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 1er colonne s'obtient avec b[i].nb1
// la 2e colonne s'obtient avec b[i].nb2
return EXIT_SUCCESS;
 
}
 
Merci de m'aider.
 

Copyright © 1997-2025 Groupe LDLC (Signaler un contenu illicite / Données personnelles)