>J'ai utilisé un malloc pour allouer de la mémoire au struct, mais y'a pleins d'erreurs. j'essaye encore.
Pas besoin de malloc! A mon avis, le code que je t'ai donné est "sale", c'est-à-dire qu'il n'est pas codé proprement (par exemple, le chemin "/proc" ne devrait pas s'y trouver en dur, mais faire l'objet d'un #define, lui aussi), mais il est parfaitement fonctionnel.
En revanche, il faut que tu effectues les #include nécessaires, et je pense que c'est ça que tu as oublié. Ces #include sont décrits en détail en haut des pages de "man" correspondant aux appels système employés, ici stat() (et sprintf(), même si ce n'est pas un vrai appel-système).
("man 2 stat", parce que man stat, c'est juste pour la commande shell "stat").
Pour sprintf, il faut sans doute ajouter #include <stdio.h> , et peut-être #include <string.h> (je n'ai pas de man 3 installé, actuellement, or sprintf est décrite dans une page de la section 3 du man, donc je ne suis pas sûr).
Sache aussi que ces #include doivent être placés au tout début de ton fichier.
En conclusion, si tu es débutant en C, sache que les pages de man, man 2 et man 3 surtout, sont particulièrement utiles à la programmation dans ce langage. Même si leur lecture, au début, est fastidieuse...
[^] # Re: System
Posté par CoinKoin . En réponse au message ecrire la liste des processus utilisateurs dans un fichier texte. Évalué à 2.
Pas besoin de malloc! A mon avis, le code que je t'ai donné est "sale", c'est-à-dire qu'il n'est pas codé proprement (par exemple, le chemin "/proc" ne devrait pas s'y trouver en dur, mais faire l'objet d'un #define, lui aussi), mais il est parfaitement fonctionnel.
En revanche, il faut que tu effectues les #include nécessaires, et je pense que c'est ça que tu as oublié. Ces #include sont décrits en détail en haut des pages de "man" correspondant aux appels système employés, ici stat() (et sprintf(), même si ce n'est pas un vrai appel-système).
"man 2 stat" donne :
("man 2 stat", parce que man stat, c'est juste pour la commande shell "stat").
Pour sprintf, il faut sans doute ajouter #include <stdio.h> , et peut-être #include <string.h> (je n'ai pas de man 3 installé, actuellement, or sprintf est décrite dans une page de la section 3 du man, donc je ne suis pas sûr).
Sache aussi que ces #include doivent être placés au tout début de ton fichier.
En conclusion, si tu es débutant en C, sache que les pages de man, man 2 et man 3 surtout, sont particulièrement utiles à la programmation dans ce langage. Même si leur lecture, au début, est fastidieuse...