Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 10/11/2015, à 12: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(), &param);
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 smile


D.

Dernière modification par DonutMan75 (Le 10/11/2015, à 17:28)

Hors ligne

#2 Le 10/11/2015, à 12: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, à 17: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