Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

POSIX C Discussion :

appels système et headers


Sujet :

POSIX C

  1. #1
    Membre habitué
    appels système et headers
    Bonsoir,

    Pourquoi les appels système sont déclarés dans des headers différents ? Par exemple waitpid est dans sys/wait.h et open dans fcntl.h tandis que la plupart des autres appels sont dans unistd.h...

    Je suis sûr qu'il existe un bonne raison mais là je ne vois pas...

    Merci.
    "Bien qu'on ait du coeur à l'ouvrage,
    L'Art est long et le Temps est court." - CB

  2. #2
    Membre confirmé
    C'est histoire de compartimenter la lib C. Je te rappelle qu'a chaque fois que tu compile un programme, tous les fichiers de header seront parsé. Or si tu veux utiliser par exemple uniquement fork et wait, t'as pas forcément envie que le compilo parse le header de toute la lib C.

    Après y'a surement d'autres raisons mais bon.
    "L'insanité consiste à répéter la même action dans l'espoir d'aboutir à un résultat différent" Albert Einstein
    ----------------------
    T.O.A.O 6-MarViN

  3. #3
    Membre habitué
    Or si tu veux utiliser par exemple uniquement fork et wait, t'as pas forcément envie que le compilo parse le header de toute la lib C.
    Oui mais tout le reste est dans unistd.h (pratiquement...)

    Après y'a surement d'autres raisons mais bon.
    oui tu as raison on va pas non plus y passer la nuit...

    @+
    "Bien qu'on ait du coeur à l'ouvrage,
    L'Art est long et le Temps est court." - CB

  4. #4
    Expert éminent
    Citation Envoyé par PyNub
    Oui mais tout le reste est dans unistd.h (pratiquement...)
    Bin voilà à quoi il sert , à mettre toutes les déclarations qui n'ont pas trouvé de place ailleurs. Dans cette page de man par exemple, on trouve :
    The <unistd.h> header defines the symbolic constants and structures which are not already defined or declared in some other header. (...)
    On trouve également abondamment la description suivante (ici par exemple) :
    The <unistd.h> header defines miscellaneous symbolic constants and types, and declares miscellaneous functions. (...)
    En gros unistd.h aurait aussi très bien pu se nommer miscellaneous.h (soit divers.h en français).

  5. #5
    Membre habitué
    ah tiens...
    Javais oublié de marquer résolu celle-ci...
    Voilà qui est fait merci a vous deux
    "Bien qu'on ait du coeur à l'ouvrage,
    L'Art est long et le Temps est court." - CB