#1 Le 10/11/2015, à 11:20
- DonutMan75
[RESOLU] [C] Afficher *proprement* une structure
Bonjour à tous,
ma question est une extension de celle posée hier par niemand.
Quand j'utilise un header de la bibliothèque standard (ici par exemple <sched.h>), comment puis-je accéder *proprement* aux structures définies dans ces headers ?
Par exemple, /usr/include/sched.h définit la fonction sched_getparam dont voici le prototype :
extern int sched_getparam (__pid_t __pid, struct sched_param *__param) __THROW;
Dans un autre fichier sched.h (sous-répertoire i386-linux-gnu), je trouve la définition de cette structure :
struct sched_param
{
int __sched_priority;
};
Dans mon code, j'ai ainsi :
int r = sched_getparam(getpid(), ¶m);
printf("Valeur de param = %d\n", param.__sched_priority);
J'ai l'intuition que je viens d'écrire quelque chose de (très très) moche : les variables préfixées par "_" ne devraient pas apparaître dans mon code... Comment puis-je faire pour afficher param de façon propre ?
Merci d'avance
D.
Dernière modification par DonutMan75 (Le 10/11/2015, à 16:28)
Hors ligne
#2 Le 10/11/2015, à 11:43
- no_spleen
Re : [RESOLU] [C] Afficher *proprement* une structure
Bonjour,
Je viens de vérifier dans ma bible (The Linux Programming Interface, Michael Kerrisk), et ta façon de faire est bien la bonne.
De plus, sur mon système j'ai le define suivant dans le header sched.h
#define sched_priority __sched_priority
Ce qui fait que tu pourrais utiliser une syntaxe plus naturelle
printf("Valeur de param = %d\n", param.sched_priority);
Bonne journée !
Hors ligne
#3 Le 10/11/2015, à 16:29
- DonutMan75
Re : [RESOLU] [C] Afficher *proprement* une structure
Bonjour no_spleen,
merci pour ta réponse. Effectivement en cherchant de mon côté, j'ai également trouvé le même define dans mon .h.
Les informations sont un peu disséminées dans différents fichiers portant le même nom, ce n 'est pas facile de s'y retrouver !
Merci encore quoiqu'il en soit, et à bientôt,
D.
Hors ligne