source: branches/minix3-book/include/limits.h

Last change on this file was 4, checked in by Mattia Monga, 13 years ago

Importazione sorgenti libro

File size: 3.7 KB
Line 
1/* The <limits.h> header defines some basic sizes, both of the language types
2 * (e.g., the number of bits in an integer), and of the operating system (e.g.
3 * the number of characters in a file name.
4 */
5
6#ifndef _LIMITS_H
7#define _LIMITS_H
8
9/* Definitions about chars (8 bits in MINIX, and signed). */
10#define CHAR_BIT 8 /* # bits in a char */
11#define CHAR_MIN -128 /* minimum value of a char */
12#define CHAR_MAX 127 /* maximum value of a char */
13#define SCHAR_MIN -128 /* minimum value of a signed char */
14#define SCHAR_MAX 127 /* maximum value of a signed char */
15#define UCHAR_MAX 255 /* maximum value of an unsigned char */
16#define MB_LEN_MAX 1 /* maximum length of a multibyte char */
17
18/* Definitions about shorts (16 bits in MINIX). */
19#define SHRT_MIN (-32767-1) /* minimum value of a short */
20#define SHRT_MAX 32767 /* maximum value of a short */
21#define USHRT_MAX 0xFFFF /* maximum value of unsigned short */
22
23/* _EM_WSIZE is a compiler-generated symbol giving the word size in bytes. */
24#define INT_MIN (-2147483647-1) /* minimum value of a 32-bit int */
25#define INT_MAX 2147483647 /* maximum value of a 32-bit int */
26#define UINT_MAX 0xFFFFFFFF /* maximum value of an unsigned 32-bit int */
27
28/*Definitions about longs (32 bits in MINIX). */
29#define LONG_MIN (-2147483647L-1)/* minimum value of a long */
30#define LONG_MAX 2147483647L /* maximum value of a long */
31#define ULONG_MAX 0xFFFFFFFFL /* maximum value of an unsigned long */
32
33#include <sys/dir.h>
34
35/* Minimum sizes required by the POSIX P1003.1 standard (Table 2-3). */
36#ifdef _POSIX_SOURCE /* these are only visible for POSIX */
37#define _POSIX_ARG_MAX 4096 /* exec() may have 4K worth of args */
38#define _POSIX_CHILD_MAX 6 /* a process may have 6 children */
39#define _POSIX_LINK_MAX 8 /* a file may have 8 links */
40#define _POSIX_MAX_CANON 255 /* size of the canonical input queue */
41#define _POSIX_MAX_INPUT 255 /* you can type 255 chars ahead */
42#define _POSIX_NAME_MAX DIRSIZ /* a file name may have 14 chars */
43#define _POSIX_NGROUPS_MAX 0 /* supplementary group IDs are optional */
44#define _POSIX_OPEN_MAX 16 /* a process may have 16 files open */
45#define _POSIX_PATH_MAX 255 /* a pathname may contain 255 chars */
46#define _POSIX_PIPE_BUF 512 /* pipes writes of 512 bytes must be atomic */
47#define _POSIX_STREAM_MAX 8 /* at least 8 FILEs can be open at once */
48#define _POSIX_TZNAME_MAX 3 /* time zone names can be at least 3 chars */
49#define _POSIX_SSIZE_MAX 32767 /* read() must support 32767 byte reads */
50
51/* Values actually implemented by MINIX (Tables 2-4, 2-5, 2-6, and 2-7). */
52/* Some of these old names had better be defined when not POSIX. */
53#define _NO_LIMIT 100 /* arbitrary number; limit not enforced */
54
55#define NGROUPS_MAX 0 /* supplemental group IDs not available */
56#define ARG_MAX 16384 /* # bytes of args + environ for exec() */
57#define CHILD_MAX _NO_LIMIT /* MINIX does not limit children */
58#define OPEN_MAX 20 /* # open files a process may have */
59#define LINK_MAX SHRT_MAX /* # links a file may have */
60#define MAX_CANON 255 /* size of the canonical input queue */
61#define MAX_INPUT 255 /* size of the type-ahead buffer */
62#define NAME_MAX DIRSIZ /* # chars in a file name */
63#define PATH_MAX 255 /* # chars in a path name */
64#define PIPE_BUF 7168 /* # bytes in atomic write to a pipe */
65#define STREAM_MAX 20 /* must be the same as FOPEN_MAX in stdio.h */
66#define TZNAME_MAX 3 /* maximum bytes in a time zone name is 3 */
67#define SSIZE_MAX 32767 /* max defined byte count for read() */
68
69#endif /* _POSIX_SOURCE */
70
71#endif /* _LIMITS_H */
Note: See TracBrowser for help on using the repository browser.