Participer au site avec un Tip
Rechercher
 

Améliorations / Corrections

Vous avez des améliorations (ou des corrections) à proposer pour ce document : je vous remerçie par avance de m'en faire part, cela m'aide à améliorer le site.

Emplacement :

Description des améliorations :

Vous êtes un professionnel et vous avez besoin d'une formation ? Programmation avec
Le langage C
Voir le programme détaillé

Les limites POSIX d'exécution de <limits.h>

Les largeurs entières C23 Les limites POSIX de chemins


Entête à inclure

#include <limits.h>  // <climits> en C++

Macros POSIX

Ces macros décrivent des limites de ressources liées à l'exécution d'un processus, aux threads, aux signaux, aux files de messages ou à certains utilitaires POSIX. Selon les implémentations, certaines valeurs peuvent être indétérminees dans l'entété et doivent alors être récupérées avec sysconf.

MacroDepuisDescription
AIO_LISTIO_MAX POSIX Nombre maximal d'opérations dans un appel listio.
AIO_MAX POSIX Nombre maximal d'opérations d'entrées/sorties asynchrones en attente.
AIO_PRIO_DELTA_MAX POSIX Écart maximal appliqué a une priorité d'E/S asynchrone.
ARG_MAX POSIX Taille maximale des arguments et de l'environnement passés à exec.
ATEXIT_MAX POSIX Nombre maximal de fonctions enregistrables avec atexit.
CHILD_MAX POSIX Nombre maximal de processus simultanés pour un utilisateur réel.
DELAYTIMER_MAX POSIX Nombre maximal de dépassements d'expiration de timer.
HOST_NAME_MAX POSIX Longueur maximale d'un nom d'hôte, hors nul terminal.
IOV_MAX POSIX Nombre maximal de structures iovec utilisables avec readv ou writev.
LOGIN_NAME_MAX POSIX Taille maximale d'un nom de connexion.
MQ_OPEN_MAX POSIX Nombre maximal de files de messages ouvertes par processus.
MQ_PRIO_MAX POSIX Nombre maximal de priorités de messages.
OPEN_MAX POSIX Valeur supérieure au plus grand descripteur de fichier attribuable.
PAGESIZE POSIX Taille d'une page mémoire, en octets.
PAGE_SIZE POSIX Équivalent de PAGESIZE quand l'une des deux macros est définie.
PTHREAD_DESTRUCTOR_ITERATIONS POSIX Nombre maximal de passages pour détruire les données spécifiques aux threads.
PTHREAD_KEYS_MAX POSIX Nombre maximal de cles de données spécifiques aux threads.
PTHREAD_STACK_MIN POSIX Taille minimale d'une pile de thread.
PTHREAD_THREADS_MAX POSIX Nombre maximal de threads par processus.
RTSIG_MAX POSIX Nombre maximal de signaux temps réel reserves aux applications.
SEM_NSEMS_MAX POSIX Nombre maximal de sémaphores par processus.
SEM_VALUE_MAX POSIX Valeur maximale d'un semaphore.
SIGQUEUE_MAX POSIX Nombre maximal de signaux en file d'attente.
SS_REPL_MAX POSIX Nombre maximal de replenishments pour un serveur sporadique.
STREAM_MAX POSIX Nombre maximal de flux stdio ouverts par processus.
SYMLOOP_MAX POSIX Nombre maximal de liens symboliques traversables.
TIMER_MAX POSIX Nombre maximal de timers par processus.
TRACE_EVENT_NAME_MAX POSIX Longueur maximale d'un nom d'evenement de trace.
TRACE_NAME_MAX POSIX Longueur maximale d'un nom de trace.
TRACE_SYS_MAX POSIX Nombre maximal de flux de trace simultanés.
TRACE_USER_EVENT_MAX POSIX Nombre maximal d'evenements de trace utilisateur.
TTY_NAME_MAX POSIX Longueur maximale d'un nom de terminal.
TZNAME_MAX POSIX Longueur maximale d'un nom de fuseau horaire.
BC_BASE_MAX POSIX Valeur maximale de obase pour l'utilitaire bc.
BC_DIM_MAX POSIX Nombre maximal d'elements dans un tableau bc.
BC_SCALE_MAX POSIX Valeur maximale de scale pour l'utilitaire bc.
BC_STRING_MAX POSIX Longueur maximale d'une chaine constante acceptee par bc.
CHARCLASS_NAME_MAX POSIX Nombre maximal d'octets dans un nom de classe de caracteres.
COLL_WEIGHTS_MAX POSIX Nombre maximal de poids associes a une entree de collation.
EXPR_NEST_MAX POSIX Nombre maximal d'expressions imbriquees dans expr.
LINE_MAX POSIX Longueur maximale d'une ligne de texte traitee par un utilitaire.
NGROUPS_MAX POSIX Nombre maximal de groupes supplémentaires par processus.
RE_DUP_MAX POSIX Nombre maximal de repetitions dans une expression rationnelle.

Exemple de code

Le bloc suivant montre une maniere simple de consulter quelques limites, en tenant compte du fait que certaines valeurs peuvent aussi être demandées à l'exécution.

 1 
 2 
 3 
 4 
 5 
 6 
 7 
 8 
 9 
 10 
 11 
 12 
 13 
 14 
 15 
 16 
#include <limits.h>
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>

int main() {

#ifdef OPEN_MAX
    printf( "OPEN_MAX == %ld\n", (long) OPEN_MAX );
#endif

    long runtimeOpenMax = sysconf( _SC_OPEN_MAX );
    printf( "_SC_OPEN_MAX == %ld\n", runtimeOpenMax );

    return EXIT_SUCCESS;
}
Lecture de quelques limites POSIX

Un affichage possible est :

OPEN_MAX == 1024
_SC_OPEN_MAX == 1024

Sujets connexes

<limits.h>
Limites POSIX d'exécution
Limites POSIX de chemins
Valeurs minimales POSIX
Autres limites POSIX
Presentation du standard POSIX


Les largeurs entières C23 Les limites POSIX de chemins




Vous êtes un professionnel et vous avez besoin d'une formation ? Programmation avec
Le langage C
Voir le programme détaillé