
1: @node System Configuration, Cryptographic Functions, System Management, Top 2: @c %MENU% Parameters describing operating system limits 3: @chapter System Configuration Parameters 4: 5: The functions and macros listed in this chapter give information about 6: configuration parameters of the operating system---for example, capacity 7: limits, presence of optional POSIX features, and the default path for 8: executable files (@pxref{String Parameters}). 9: 10: @menu 11: * General Limits:: Constants and functions that describe 12: various process-related limits that have 13: one uniform value for any given machine. 14: * System Options:: Optional POSIX features. 15: * Version Supported:: Version numbers of POSIX.1 and POSIX.2. 16: * Sysconf:: Getting specific configuration values 17: of general limits and system options. 18: * Minimums:: Minimum values for general limits. 19: 20: * Limits for Files:: Size limitations that pertain to individual files. 21: These can vary between file systems 22: or even from file to file. 23: * Options for Files:: Optional features that some files may support. 24: * File Minimums:: Minimum values for file limits. 25: * Pathconf:: Getting the limit values for a particular file. 26: 27: * Utility Limits:: Capacity limits of some POSIX.2 utility programs. 28: * Utility Minimums:: Minimum allowable values of those limits. 29: 30: * String Parameters:: Getting the default search path. 31: @end menu 32: 33: @node General Limits 34: @section General Capacity Limits 35: @cindex POSIX capacity limits 36: @cindex limits, POSIX 37: @cindex capacity limits, POSIX 38: 39: The POSIX.1 and POSIX.2 standards specify a number of parameters that 40: describe capacity limitations of the system. These limits can be fixed 41: constants for a given operating system, or they can vary from machine to 42: machine. For example, some limit values may be configurable by the 43: system administrator, either at run time or by rebuilding the kernel, 44: and this should not require recompiling application programs. 45: 46: @pindex limits.h 47: Each of the following limit parameters has a macro that is defined in 48: @file{limits.h} only if the system has a fixed, uniform limit for the 49: parameter in question. If the system allows different file systems or 50: files to have different limits, then the macro is undefined; use 51: @code{sysconf} to find out the limit that applies at a particular time 52: on a particular machine. @xref{Sysconf}. 53: 54: Each of these parameters also has another macro, with a name starting 55: with @samp{_POSIX}, which gives the lowest value that the limit is 56: allowed to have on @emph{any} POSIX system. @xref{Minimums}. 57: 58: @cindex limits, program argument size 59: @comment limits.h 60: @comment POSIX.1 61: @deftypevr Macro int ARG_MAX 62: If defined, the unvarying maximum combined length of the @var{argv} and 63: @var{environ} arguments that can be passed to the @code{exec} functions. 64: @end deftypevr 65: 66: @cindex limits, number of processes 67: @comment limits.h 68: @comment POSIX.1 69: @deftypevr Macro int CHILD_MAX 70: If defined, the unvarying maximum number of processes that can exist 71: with the same real user ID at any one time. In BSD and GNU, this is 72: controlled by the @code{RLIMIT_NPROC} resource limit; @pxref{Limits on 73: Resources}. 74: @end deftypevr 75: 76: @cindex limits, number of open files 77: @comment limits.h 78: @comment POSIX.1 79: @deftypevr Macro int OPEN_MAX 80: If defined, the unvarying maximum number of files that a single process 81: can have open simultaneously. In BSD and GNU, this is controlled 82: by the @code{RLIMIT_NOFILE} resource limit; @pxref{Limits on Resources}. 83: @end deftypevr 84: 85: @comment limits.h 86: @comment POSIX.1 87: @deftypevr Macro int STREAM_MAX 88: If defined, the unvarying maximum number of streams that a single 89: process can have open simultaneously. @xref{Opening Streams}. 90: @end deftypevr 91: 92: @cindex limits, time zone name length 93: @comment limits.h 94: @comment POSIX.1 95: @deftypevr Macro int TZNAME_MAX 96: If defined, the unvarying maximum length of a time zone name. 97: @xref{Time Zone Functions}. 98: @end deftypevr 99: 100: These limit macros are always defined in @file{limits.h}. 101: 102: @cindex limits, number of supplementary group IDs 103: @comment limits.h 104: @comment POSIX.1 105: @deftypevr Macro int NGROUPS_MAX 106: The maximum number of supplementary group IDs that one process can have. 107: 108: The value of this macro is actually a lower bound for the maximum. That 109: is, you can count on being able to have that many supplementary group 110: IDs, but a particular machine might let you have even more. You can use 111: @code{sysconf} to see whether a particular machine will let you have 112: more (@pxref{Sysconf}). 113: @end deftypevr 114: 115: @comment limits.h 116: @comment POSIX.1 117: @deftypevr Macro int SSIZE_MAX 118: The largest value that can fit in an object of type @code{ssize_t}. 119: Effectively, this is the limit on the number of bytes that can be read 120: or written in a single operation. 121: 122: This macro is defined in all POSIX systems because this limit is never 123: configurable. 124: @end deftypevr 125: 126: @comment limits.h 127: @comment POSIX.2 128: @deftypevr Macro int RE_DUP_MAX 129: The largest number of repetitions you are guaranteed is allowed in the 130: construct @samp{\@{@var{min},@var{max}\@}} in a regular expression. 131: 132: The value of this macro is actually a lower bound for the maximum. That 133: is, you can count on being able to have that many repetitions, but a 134: particular machine might let you have even more. You can use 135: @code{sysconf} to see whether a particular machine will let you have 136: more (@pxref{Sysconf}). And even the value that @code{sysconf} tells 137: you is just a lower bound---larger values might work. 138: 139: This macro is defined in all POSIX.2 systems, because POSIX.2 says it 140: should always be defined even if there is no specific imposed limit. 141: @end deftypevr 142: 143: @node System Options 144: @section Overall System Options 145: @cindex POSIX optional features 146: @cindex optional POSIX features 147: 148: POSIX defines certain system-specific options that not all POSIX systems 149: support. Since these options are provided in the kernel, not in the 150: library, simply using the GNU C library does not guarantee any of these 151: features is supported; it depends on the system you are using. 152: 153: @pindex unistd.h 154: You can test for the availability of a given option using the macros in 155: this section, together with the function @code{sysconf}. The macros are 156: defined only if you include @file{unistd.h}. 157: 158: For the following macros, if the macro is defined in @file{unistd.h}, 159: then the option is supported. Otherwise, the option may or may not be 160: supported; use @code{sysconf} to find out. @xref{Sysconf}. 161: 162: @comment unistd.h 163: @comment POSIX.1 164: @deftypevr Macro int _POSIX_JOB_CONTROL 165: If this symbol is defined, it indicates that the system supports job 166: control. Otherwise, the implementation behaves as if all processes 167: within a session belong to a single process group. @xref{Job Control}. 168: @end deftypevr 169: 170: @comment unistd.h 171: @comment POSIX.1 172: @deftypevr Macro int _POSIX_SAVED_IDS 173: If this symbol is defined, it indicates that the system remembers the 174: effective user and group IDs of a process before it executes an 175: executable file with the set-user-ID or set-group-ID bits set, and that 176: explicitly changing the effective user or group IDs back to these values 177: is permitted. If this option is not defined, then if a nonprivileged 178: process changes its effective user or group ID to the real user or group 179: ID of the process, it can't change it back again. @xref{Enable/Disable 180: Setuid}. 181: @end deftypevr 182: 183: For the following macros, if the macro is defined in @file{unistd.h}, 184: then its value indicates whether the option is supported. A value of 185: @code{-1} means no, and any other value means yes. If the macro is not 186: defined, then the option may or may not be supported; use @code{sysconf} 187: to find out. @xref{Sysconf}. 188: 189: @comment unistd.h 190: @comment POSIX.2 191: @deftypevr Macro int _POSIX2_C_DEV 192: If this symbol is defined, it indicates that the system has the POSIX.2 193: C compiler command, @code{c89}. The GNU C library always defines this 194: as @code{1}, on the assumption that you would not have installed it if 195: you didn't have a C compiler. 196: @end deftypevr 197: 198: @comment unistd.h 199: @comment POSIX.2 200: @deftypevr Macro int _POSIX2_FORT_DEV 201: If this symbol is defined, it indicates that the system has the POSIX.2 202: Fortran compiler command, @code{fort77}. The GNU C library never 203: defines this, because we don't know what the system has. 204: @end deftypevr 205: 206: @comment unistd.h 207: @comment POSIX.2 208: @deftypevr Macro int _POSIX2_FORT_RUN 209: If this symbol is defined, it indicates that the system has the POSIX.2 210: @code{asa} command to interpret Fortran carriage control. The GNU C 211: library never defines this, because we don't know what the system has. 212: @end deftypevr 213: 214: @comment unistd.h 215: @comment POSIX.2 216: @deftypevr Macro int _POSIX2_LOCALEDEF 217: If this symbol is defined, it indicates that the system has the POSIX.2 218: @code{localedef} command. The GNU C library never defines this, because 219: we don't know what the system has. 220: @end deftypevr 221: 222: @comment unistd.h 223: @comment POSIX.2 224: @deftypevr Macro int _POSIX2_SW_DEV 225: If this symbol is defined, it indicates that the system has the POSIX.2 226: commands @code{ar}, @code{make}, and @code{strip}. The GNU C library 227: always defines this as @code{1}, on the assumption that you had to have 228: @code{ar} and @code{make} to install the library, and it's unlikely that 229: @code{strip} would be absent when those are present. 230: @end deftypevr 231: 232: @node Version Supported 233: @section Which Version of POSIX is Supported 234: 235: @comment unistd.h 236: @comment POSIX.1 237: @deftypevr Macro {long int} _POSIX_VERSION 238: This constant represents the version of the POSIX.1 standard to which 239: the implementation conforms. For an implementation conforming to the 240: 1995 POSIX.1 standard, the value is the integer @code{199506L}. 241: 242: @code{_POSIX_VERSION} is always defined (in @file{unistd.h}) in any 243: POSIX system. 244: 245: @strong{Usage Note:} Don't try to test whether the system supports POSIX 246: by including @file{unistd.h} and then checking whether 247: @code{_POSIX_VERSION} is defined. On a non-POSIX system, this will 248: probably fail because there is no @file{unistd.h}. We do not know of 249: @emph{any} way you can reliably test at compilation time whether your 250: target system supports POSIX or whether @file{unistd.h} exists. 251: 252: The GNU C compiler predefines the symbol @code{__POSIX__} if the target 253: system is a POSIX system. Provided you do not use any other compilers 254: on POSIX systems, testing @code{defined (__POSIX__)} will reliably 255: detect such systems. 256: @end deftypevr 257: 258: @comment unistd.h 259: @comment POSIX.2 260: @deftypevr Macro {long int} _POSIX2_C_VERSION 261: This constant represents the version of the POSIX.2 standard which the 262: library and system kernel support. We don't know what value this will 263: be for the first version of the POSIX.2 standard, because the value is 264: based on the year and month in which the standard is officially adopted. 265: 266: The value of this symbol says nothing about the utilities installed on 267: the system. 268: 269: @strong{Usage Note:} You can use this macro to tell whether a POSIX.1 270: system library supports POSIX.2 as well. Any POSIX.1 system contains 271: @file{unistd.h}, so include that file and then test @code{defined 272: (_POSIX2_C_VERSION)}. 273: @end deftypevr 274: 275: @node Sysconf 276: @section Using @code{sysconf} 277: 278: When your system has configurable system limits, you can use the 279: @code{sysconf} function to find out the value that applies to any 280: particular machine. The function and the associated @var{parameter} 281: constants are declared in the header file @file{unistd.h}. 282: 283: @menu 284: * Sysconf Definition:: Detailed specifications of @code{sysconf}. 285: * Constants for Sysconf:: The list of parameters @code{sysconf} can read. 286: * Examples of Sysconf:: How to use @code{sysconf} and the parameter 287: macros properly together. 288: @end menu 289: 290: @node Sysconf Definition 291: @subsection Definition of @code{sysconf} 292: 293: @comment unistd.h 294: @comment POSIX.1 295: @deftypefun {long int} sysconf (int @var{parameter}) 296: This function is used to inquire about runtime system parameters. The 297: @var{parameter} argument should be one of the @samp{_SC_} symbols listed 298: below. 299: 300: The normal return value from @code{sysconf} is the value you requested. 301: A value of @code{-1} is returned both if the implementation does not 302: impose a limit, and in case of an error. 303: 304: The following @code{errno} error conditions are defined for this function: 305: 306: @table @code 307: @item EINVAL 308: The value of the @var{parameter} is invalid. 309: @end table 310: @end deftypefun 311: 312: @node Constants for Sysconf 313: @subsection Constants for @code{sysconf} Parameters 314: 315: Here are the symbolic constants for use as the @var{parameter} argument 316: to @code{sysconf}. The values are all integer constants (more 317: specifically, enumeration type values). 318: 319: @vtable @code 320: @comment unistd.h 321: @comment POSIX.1 322: @item _SC_ARG_MAX 323: Inquire about the parameter corresponding to @code{ARG_MAX}. 324: 325: @comment unistd.h 326: @comment POSIX.1 327: @item _SC_CHILD_MAX 328: Inquire about the parameter corresponding to @code{CHILD_MAX}. 329: 330: @comment unistd.h 331: @comment POSIX.1 332: @item _SC_OPEN_MAX 333: Inquire about the parameter corresponding to @code{OPEN_MAX}. 334: 335: @comment unistd.h 336: @comment POSIX.1 337: @item _SC_STREAM_MAX 338: Inquire about the parameter corresponding to @code{STREAM_MAX}. 339: 340: @comment unistd.h 341: @comment POSIX.1 342: @item _SC_TZNAME_MAX 343: Inquire about the parameter corresponding to @code{TZNAME_MAX}. 344: 345: @comment unistd.h 346: @comment POSIX.1 347: @item _SC_NGROUPS_MAX 348: Inquire about the parameter corresponding to @code{NGROUPS_MAX}. 349: 350: @comment unistd.h 351: @comment POSIX.1 352: @item _SC_JOB_CONTROL 353: Inquire about the parameter corresponding to @code{_POSIX_JOB_CONTROL}. 354: 355: @comment unistd.h 356: @comment POSIX.1 357: @item _SC_SAVED_IDS 358: Inquire about the parameter corresponding to @code{_POSIX_SAVED_IDS}. 359: 360: @comment unistd.h 361: @comment POSIX.1 362: @item _SC_VERSION 363: Inquire about the parameter corresponding to @code{_POSIX_VERSION}. 364: 365: @comment unistd.h 366: @comment POSIX.1 367: @item _SC_CLK_TCK 368: Inquire about the parameter corresponding to @code{CLOCKS_PER_SEC}; 369: @pxref{CPU Time}. 370: 371: @comment unistd.h 372: @comment GNU 373: @item _SC_CHARCLASS_NAME_MAX 374: Inquire about the parameter corresponding to maximal length allowed for 375: a character class name in an extended locale specification. These 376: extensions are not yet standardized and so this option is not standardized 377: as well. 378: 379: @comment unistdh.h 380: @comment POSIX.1 381: @item _SC_REALTIME_SIGNALS 382: Inquire about the parameter corresponding to @code{_POSIX_REALTIME_SIGNALS}. 383: 384: @comment unistd.h 385: @comment POSIX.1 386: @item _SC_PRIORITY_SCHEDULING 387: Inquire about the parameter corresponding to @code{_POSIX_PRIORITY_SCHEDULING}. 388: 389: @comment unistd.h 390: @comment POSIX.1 391: @item _SC_TIMERS 392: Inquire about the parameter corresponding to @code{_POSIX_TIMERS}. 393: 394: @comment unistd.h 395: @comment POSIX.1 396: @item _SC_ASYNCHRONOUS_IO 397: Inquire about the parameter corresponding to @code{_POSIX_ASYNCHRONOUS_IO}. 398: 399: @comment unistd.h 400: @comment POSIX.1 401: @item _SC_PRIORITIZED_IO 402: Inquire about the parameter corresponding to @code{_POSIX_PRIORITIZED_IO}. 403: 404: @comment unistd.h 405: @comment POSIX.1 406: @item _SC_SYNCHRONIZED_IO 407: Inquire about the parameter corresponding to @code{_POSIX_SYNCHRONIZED_IO}. 408: 409: @comment unistd.h 410: @comment POSIX.1 411: @item _SC_FSYNC 412: Inquire about the parameter corresponding to @code{_POSIX_FSYNC}. 413: 414: @comment unistd.h 415: @comment POSIX.1 416: @item _SC_MAPPED_FILES 417: Inquire about the parameter corresponding to @code{_POSIX_MAPPED_FILES}. 418: 419: @comment unistd.h 420: @comment POSIX.1 421: @item _SC_MEMLOCK 422: Inquire about the parameter corresponding to @code{_POSIX_MEMLOCK}. 423: 424: @comment unistd.h 425: @comment POSIX.1 426: @item _SC_MEMLOCK_RANGE 427: Inquire about the parameter corresponding to @code{_POSIX_MEMLOCK_RANGE}. 428: 429: @comment unistd.h 430: @comment POSIX.1 431: @item _SC_MEMORY_PROTECTION 432: Inquire about the parameter corresponding to @code{_POSIX_MEMORY_PROTECTION}. 433: 434: @comment unistd.h 435: @comment POSIX.1 436: @item _SC_MESSAGE_PASSING 437: Inquire about the parameter corresponding to @code{_POSIX_MESSAGE_PASSING}. 438: 439: @comment unistd.h 440: @comment POSIX.1 441: @item _SC_SEMAPHORES 442: Inquire about the parameter corresponding to @code{_POSIX_SEMAPHORES}. 443: 444: @comment unistd.h 445: @comment POSIX.1 446: @item _SC_SHARED_MEMORY_OBJECTS 447: Inquire about the parameter corresponding to@* 448: @code{_POSIX_SHARED_MEMORY_OBJECTS}. 449: 450: @comment unistd.h 451: @comment POSIX.1 452: @item _SC_AIO_LISTIO_MAX 453: Inquire about the parameter corresponding to @code{_POSIX_AIO_LISTIO_MAX}. 454: 455: @comment unistd.h 456: @comment POSIX.1 457: @item _SC_AIO_MAX 458: Inquire about the parameter corresponding to @code{_POSIX_AIO_MAX}. 459: 460: @comment unistd.h 461: @comment POSIX.1 462: @item _SC_AIO_PRIO_DELTA_MAX 463: Inquire the value by which a process can decrease its asynchronous I/O 464: priority level from its own scheduling priority. This corresponds to the 465: run-time invariant value @code{AIO_PRIO_DELTA_MAX}. 466: 467: @comment unistd.h 468: @comment POSIX.1 469: @item _SC_DELAYTIMER_MAX 470: Inquire about the parameter corresponding to @code{_POSIX_DELAYTIMER_MAX}. 471: 472: @comment unistd.h 473: @comment POSIX.1 474: @item _SC_MQ_OPEN_MAX 475: Inquire about the parameter corresponding to @code{_POSIX_MQ_OPEN_MAX}. 476: 477: @comment unistd.h 478: @comment POSIX.1 479: @item _SC_MQ_PRIO_MAX 480: Inquire about the parameter corresponding to @code{_POSIX_MQ_PRIO_MAX}. 481: 482: @comment unistd.h 483: @comment POSIX.1 484: @item _SC_RTSIG_MAX 485: Inquire about the parameter corresponding to @code{_POSIX_RTSIG_MAX}. 486: 487: @comment unistd.h 488: @comment POSIX.1 489: @item _SC_SEM_NSEMS_MAX 490: Inquire about the parameter corresponding to @code{_POSIX_SEM_NSEMS_MAX}. 491: 492: @comment unistd.h 493: @comment POSIX.1 494: @item _SC_SEM_VALUE_MAX 495: Inquire about the parameter corresponding to @code{_POSIX_SEM_VALUE_MAX}. 496: 497: @comment unistd.h 498: @comment POSIX.1 499: @item _SC_SIGQUEUE_MAX 500: Inquire about the parameter corresponding to @code{_POSIX_SIGQUEUE_MAX}. 501: 502: @comment unistd.h 503: @comment POSIX.1 504: @item _SC_TIMER_MAX 505: Inquire about the parameter corresponding to @code{_POSIX_TIMER_MAX}. 506: 507: @comment unistd.h 508: @comment POSIX.1g 509: @item _SC_PII 510: Inquire about the parameter corresponding to @code{_POSIX_PII}. 511: 512: @comment unistd.h 513: @comment POSIX.1g 514: @item _SC_PII_XTI 515: Inquire about the parameter corresponding to @code{_POSIX_PII_XTI}. 516: 517: @comment unistd.h 518: @comment POSIX.1g 519: @item _SC_PII_SOCKET 520: Inquire about the parameter corresponding to @code{_POSIX_PII_SOCKET}. 521: 522: @comment unistd.h 523: @comment POSIX.1g 524: @item _SC_PII_INTERNET 525: Inquire about the parameter corresponding to @code{_POSIX_PII_INTERNET}. 526: 527: @comment unistd.h 528: @comment POSIX.1g 529: @item _SC_PII_OSI 530: Inquire about the parameter corresponding to @code{_POSIX_PII_OSI}. 531: 532: @comment unistd.h 533: @comment POSIX.1g 534: @item _SC_SELECT 535: Inquire about the parameter corresponding to @code{_POSIX_SELECT}. 536: 537: @comment unistd.h 538: @comment POSIX.1g 539: @item _SC_UIO_MAXIOV 540: Inquire about the parameter corresponding to @code{_POSIX_UIO_MAXIOV}. 541: 542: @comment unistd.h 543: @comment POSIX.1g 544: @item _SC_PII_INTERNET_STREAM 545: Inquire about the parameter corresponding to @code{_POSIX_PII_INTERNET_STREAM}. 546: 547: @comment unistd.h 548: @comment POSIX.1g 549: @item _SC_PII_INTERNET_DGRAM 550: Inquire about the parameter corresponding to @code{_POSIX_PII_INTERNET_DGRAM}. 551: 552: @comment unistd.h 553: @comment POSIX.1g 554: @item _SC_PII_OSI_COTS 555: Inquire about the parameter corresponding to @code{_POSIX_PII_OSI_COTS}. 556: 557: @comment unistd.h 558: @comment POSIX.1g 559: @item _SC_PII_OSI_CLTS 560: Inquire about the parameter corresponding to @code{_POSIX_PII_OSI_CLTS}. 561: 562: @comment unistd.h 563: @comment POSIX.1g 564: @item _SC_PII_OSI_M 565: Inquire about the parameter corresponding to @code{_POSIX_PII_OSI_M}. 566: 567: @comment unistd.h 568: @comment POSIX.1g 569: @item _SC_T_IOV_MAX 570: Inquire the value of the value associated with the @code{T_IOV_MAX} 571: variable. 572: 573: @comment unistd.h 574: @comment POSIX.1 575: @item _SC_THREADS 576: Inquire about the parameter corresponding to @code{_POSIX_THREADS}. 577: 578: @comment unistd.h 579: @comment POSIX.1 580: @item _SC_THREAD_SAFE_FUNCTIONS 581: Inquire about the parameter corresponding to@* 582: @code{_POSIX_THREAD_SAFE_FUNCTIONS}. 583: 584: @comment unistd.h 585: @comment POSIX.1 586: @item _SC_GETGR_R_SIZE_MAX 587: Inquire about the parameter corresponding to @code{_POSIX_GETGR_R_SIZE_MAX}. 588: 589: @comment unistd.h 590: @comment POSIX.1 591: @item _SC_GETPW_R_SIZE_MAX 592: Inquire about the parameter corresponding to @code{_POSIX_GETPW_R_SIZE_MAX}. 593: 594: @comment unistd.h 595: @comment POSIX.1 596: @item _SC_LOGIN_NAME_MAX 597: Inquire about the parameter corresponding to @code{_POSIX_LOGIN_NAME_MAX}. 598: 599: @comment unistd.h 600: @comment POSIX.1 601: @item _SC_TTY_NAME_MAX 602: Inquire about the parameter corresponding to @code{_POSIX_TTY_NAME_MAX}. 603: 604: @comment unistd.h 605: @comment POSIX.1 606: @item _SC_THREAD_DESTRUCTOR_ITERATIONS 607: Inquire about the parameter corresponding to 608: @code{_POSIX_THREAD_DESTRUCTOR_ITERATIONS}. 609: 610: @comment unistd.h 611: @comment POSIX.1 612: @item _SC_THREAD_KEYS_MAX 613: Inquire about the parameter corresponding to @code{_POSIX_THREAD_KEYS_MAX}. 614: 615: @comment unistd.h 616: @comment POSIX.1 617: @item _SC_THREAD_STACK_MIN 618: Inquire about the parameter corresponding to @code{_POSIX_THREAD_STACK_MIN}. 619: 620: @comment unistd.h 621: @comment POSIX.1 622: @item _SC_THREAD_THREADS_MAX 623: Inquire about the parameter corresponding to @code{_POSIX_THREAD_THREADS_MAX}. 624: 625: @comment unistd.h 626: @comment POSIX.1 627: @item _SC_THREAD_ATTR_STACKADDR 628: Inquire about the parameter corresponding to@*a 629: @code{_POSIX_THREAD_ATTR_STACKADDR}. 630: 631: @comment unistd.h 632: @comment POSIX.1 633: @item _SC_THREAD_ATTR_STACKSIZE 634: Inquire about the parameter corresponding to@* 635: @code{_POSIX_THREAD_ATTR_STACKSIZE}. 636: 637: @comment unistd.h 638: @comment POSIX.1 639: @item _SC_THREAD_PRIORITY_SCHEDULING 640: Inquire about the parameter corresponding to 641: @code{_POSIX_THREAD_PRIORITY_SCHEDULING}. 642: 643: @comment unistd.h 644: @comment POSIX.1 645: @item _SC_THREAD_PRIO_INHERIT 646: Inquire about the parameter corresponding to @code{_POSIX_THREAD_PRIO_INHERIT}. 647: 648: @comment unistd.h 649: @comment POSIX.1 650: @item _SC_THREAD_PRIO_PROTECT 651: Inquire about the parameter corresponding to @code{_POSIX_THREAD_PRIO_PROTECT}. 652: 653: @comment unistd.h 654: @comment POSIX.1 655: @item _SC_THREAD_PROCESS_SHARED 656: Inquire about the parameter corresponding to 657: @code{_POSIX_THREAD_PROCESS_SHARED}. 658: 659: @comment unistd.h 660: @comment POSIX.2 661: @item _SC_2_C_DEV 662: Inquire about whether the system has the POSIX.2 C compiler command, 663: @code{c89}. 664: 665: @comment unistd.h 666: @comment POSIX.2 667: @item _SC_2_FORT_DEV 668: Inquire about whether the system has the POSIX.2 Fortran compiler 669: command, @code{fort77}. 670: 671: @comment unistd.h 672: @comment POSIX.2 673: @item _SC_2_FORT_RUN 674: Inquire about whether the system has the POSIX.2 @code{asa} command to 675: interpret Fortran carriage control. 676: 677: @comment unistd.h 678: @comment POSIX.2 679: @item _SC_2_LOCALEDEF 680: Inquire about whether the system has the POSIX.2 @code{localedef} 681: command. 682: 683: @comment unistd.h 684: @comment POSIX.2 685: @item _SC_2_SW_DEV 686: Inquire about whether the system has the POSIX.2 commands @code{ar}, 687: @code{make}, and @code{strip}. 688: 689: @comment unistd.h 690: @comment POSIX.2 691: @item _SC_BC_BASE_MAX 692: Inquire about the maximum value of @code{obase} in the @code{bc} 693: utility. 694: 695: @comment unistd.h 696: @comment POSIX.2 697: @item _SC_BC_DIM_MAX 698: Inquire about the maximum size of an array in the @code{bc} 699: utility. 700: 701: @comment unistd.h 702: @comment POSIX.2 703: @item _SC_BC_SCALE_MAX 704: Inquire about the maximum value of @code{scale} in the @code{bc} 705: utility. 706: 707: @comment unistd.h 708: @comment POSIX.2 709: @item _SC_BC_STRING_MAX 710: Inquire about the maximum size of a string constant in the 711: @code{bc} utility. 712: 713: @comment unistd.h 714: @comment POSIX.2 715: @item _SC_COLL_WEIGHTS_MAX 716: Inquire about the maximum number of weights that can necessarily 717: be used in defining the collating sequence for a locale. 718: 719: @comment unistd.h 720: @comment POSIX.2 721: @item _SC_EXPR_NEST_MAX 722: Inquire about the maximum number of expressions nested within 723: parentheses when using the @code{expr} utility. 724: 725: @comment unistd.h 726: @comment POSIX.2 727: @item _SC_LINE_MAX 728: Inquire about the maximum size of a text line that the POSIX.2 text 729: utilities can handle. 730: 731: @comment unistd.h 732: @comment POSIX.2 733: @item _SC_EQUIV_CLASS_MAX 734: Inquire about the maximum number of weights that can be assigned to an 735: entry of the @code{LC_COLLATE} category @samp{order} keyword in a locale 736: definition. The GNU C library does not presently support locale 737: definitions. 738: 739: @comment unistd.h 740: @comment POSIX.2 741: @item _SC_VERSION 742: Inquire about the version number of POSIX.1 that the library and kernel 743: support. 744: 745: @comment unistd.h 746: @comment POSIX.2 747: @item _SC_2_VERSION 748: Inquire about the version number of POSIX.2 that the system utilities 749: support. 750: 751: @comment unistd.h 752: @comment GNU 753: @item _SC_PAGESIZE 754: Inquire about the virtual memory page size of the machine. 755: @code{getpagesize} returns the same value (@pxref{Query Memory Parameters}). 756: 757: @comment unistd.h 758: @comment GNU 759: @item _SC_NPROCESSORS_CONF 760: Inquire about the number of configured processors. 761: 762: @comment unistd.h 763: @comment GNU 764: @item _SC_NPROCESSORS_ONLN 765: Inquire about the number of processors online. 766: 767: @comment unistd.h 768: @comment GNU 769: @item _SC_PHYS_PAGES 770: Inquire about the number of physical pages in the system. 771: 772: @comment unistd.h 773: @comment GNU 774: @item _SC_AVPHYS_PAGES 775: Inquire about the number of available physical pages in the system. 776: 777: @comment unistd.h 778: @comment GNU 779: @item _SC_ATEXIT_MAX 780: Inquire about the number of functions which can be registered as termination 781: functions for @code{atexit}; @pxref{Cleanups on Exit}. 782: 783: @comment unistd.h 784: @comment X/Open 785: @item _SC_XOPEN_VERSION 786: Inquire about the parameter corresponding to @code{_XOPEN_VERSION}. 787: 788: @comment unistd.h 789: @comment X/Open 790: @item _SC_XOPEN_XCU_VERSION 791: Inquire about the parameter corresponding to @code{_XOPEN_XCU_VERSION}. 792: 793: @comment unistd.h 794: @comment X/Open 795: @item _SC_XOPEN_UNIX 796: Inquire about the parameter corresponding to @code{_XOPEN_UNIX}. 797: 798: @comment unistd.h 799: @comment X/Open