Macro Name | Meaning | Provided |
_POSIX_CHOWN_RESTRICTED | The use of chown() is restricted to a process with appropriate privileges, and to changing the group ID of a file only to the effective group ID of the process or one of its supplementary group IDs. | Yes |
_POSIX_NO_TRUNC | Pathname components longer than {NAME_MAX) generate an error.
| Yes |
Rationale
For a conformant implementation, these POSIX features must
be provided.
In some cases the feature need not be provided for all files or devices
supported by the implementation.
Reference
Technical Standard, Base Definitions, Issue 6,
Chapter 13, Headers, <unistd.h>.
1.1.4 Float, Stdio, and Limit Values
Question 4: What are the values associated with the following
constants specified in the <float.h> header file?
Response
Macro Name | Meaning | Value
|
FLT_RADIX
| Radix of the exponent representation.
| 2 |
FLT_MANT_DIG
| Number of base-FLT_RADIX digits in the float significand.
| 24 |
DBL_MANT_DIG
| Number of base-FLT_RADIX digits in the double significand.
| 53 |
LDBL_MANT_DIG
| Number of base-FLT_RADIX digits in the long double significand.
| 64 |
FLT_DIG
| Number of decimal digits, q, such that any floating-point number with q digits can be rounded into a float representation and back again without change to the q digits.
| 6 |
DBL_DIG
| Number of decimal digits, q, such that any floating-point number with q digits can be rounded into a double representation and back again without change to the q digits.
| 15 |
LDBL_DIG
| Number of decimal digits, q, such that any floating-point number with q digits can be rounded into a long double representation and back again without change to the q digits.
| 18 |
FLT_MIN_EXP
| Minimum negative integer such that FLT_RADIX raised to that power minus 1 is a normalised float.
| -125 |
DBL_MIN_EXP
| Minimum negative integer such that FLT_RADIX raised to that power minus 1 is a normalised double.
| -1021 |
LDBL_MIN_EXP
| Minimum negative integer such that FLT_RADIX raised to that power minus 1 is a normalised long double.
| -16381 |
FLT_MIN_10_EXP
| Minimum negative integer such that 10 raised to that power is in the range of normalised floats.
| -37 |
DBL_MIN_10_EXP
| Minimum negative integer such that 10 raised to that power is in the range of normalised doubles.
| -307 |
LDBL_MIN_10_EXP
| Minimum negative integer such that 10 raised to that power is in the range of normalised long doubles.
| -4931 |
FLT_MAX_EXP
| Maximum integer such that FLT_RADIX raised to that power minus 1 is a representable finite float.
| 128 |
DBL_MAX_EXP
| Maximum integer such that FLT_RADIX raised to that power minus 1 is a representable finite double.
| 1024 |
LDBL_MAX_EXP
| Maximum integer such that FLT_RADIX raised to that power minus 1 is a representable finite long double.
| 16384 |
FLT_MAX_10_EXP
| Maximum integer such that 10 raised to that power is in the range of representable finite floats.
| 38 |
DBL_MAX_10_EXP
| Maximum integer such that 10 raised to that power is in the range of representable finite doubles.
| 308 |
LDBL_MAX_10_EXP
| Maximum integer such that 10 raised to that power is in the range of representable finite long doubles.
| 4932 |
FLT_MAX
| Maximum representable finite float.
| 3.402823e+38 |
DBL_MAX
| Maximum representable finite double.
| 1.797693e+308 |
LDBL_MAX
| Maximum representable finite long double.
| 1.189731e+4932 |
FLT_EPSILON
| Difference between 1.0 and the least value greater than 1.0 that is representable as a float.
| 1.192093e-07 |
DBL_EPSILON
| Difference between 1.0 and the least value greater than 1.0 that is representable as a double.
| 2.220446e-16 |
LDBL_EPSILON
| Difference between 1.0 and the least value greater than 1.0 that is representable as a long double.
| 1.084202e-19 |
FLT_MIN
| Minimum normalised positive float.
| 1.175494e-38 |
DBL_MIN
| Minimum normalised positive double.
| 2.225074e-308 |
LDBL_MIN
| Minimum normalised positive long double.
| 3.362103e-4931 |
Rationale
This set of constants provides useful information regarding the underlying
architecture of the implementation.
Reference
Technical Standard, Base Definitions, Issue 6,
Chapter 13, Headers, <float.h>.
Question 5: What are the values associated with the following
constants (optionally specified in the <limits.h> header file)?
Response
Macro Name | Meaning | Minimum | Maximum
|
ARG_MAX
| 4096
Maximum length of argument to the exec functions including the
environment data.
| 4096 |
131072 |
ATEXIT_MAX
|
Maximum number of functions that may be registered with
atexit().
| 32 |
2147483647 |
CHILD_MAX
|
Maximum number of processes per user ID.
| 4096 |
15350 |
FILESIZEBITS
|
Minimum number of bits needed to represent as a signed integer value the
maximum size of a regular file.
| 32 |
45 |
HOST_NAME_MAX
|
Maximum length of a host name as returned from
gethostname().
| 255 |
255 |
IOV_MAX
|
Maximum number of iovec structures that one process has
available for use with readv() or writev().
| 16 |
1024 |
LINK_MAX
|
Maximum number of links to a single file.
| 2147483647 |
2147483647 |
LOGIN_NAME_MAX
|
Maximum length of a login name.
| 9 |
256 |
MAX_CANON
|
Maximum number of bytes in a terminal canonical input line.
| 255 |
255 |
MAX_INPUT
|
Maximum number of bytes for which space will be available in a
terminal input queue.
| 255 |
255 |
NAME_MAX
|
Maximum number of bytes in a filename (not including terminating
null).
| 14 |
255 |
OPEN_MAX
|
Maximum number of open files that one process can have open at
any one time.
| 20 |
1024 |
PAGESIZE
|
Size of a page in bytes.
| 1 |
4096 |
PAGE_SIZE
|
Same as PAGESIZE. If either PAGESIZE or PAGE_SIZE is defined, the
other will be defined with the same value.
| 1 |
4096 |
PATH_MAX
|
Maximum number of bytes in a pathname (including the terminating
null).
| 256 |
4096 |
PIPE_BUF
|
Maximum number of bytes that is guaranteed to be atomic when
writing to a pipe.
| 512 |
4096 |
PTHREAD_DESTRUCTOR_ITERATIONS
|
Maximum number of attempts made to destroy
a thread's thread-specific data values on thread exit.
| 4 |
4 |
PTHREAD_KEYS_MAX
|
Maximum number of data keys that can be created by a process.
| 128 |
1024 |
PTHREAD_STACK_MIN
|
Minimum size in bytes of thread stack storage.
| 0 |
16384 |
PTHREAD_THREADS_MAX
|
Maximum number of threads that can be created by a process.
|
64 |
64 |
STREAM_MAX
|
Number of streams that one process can have open at one time.
|
8 |
8 |
SYMLINK_MAX
|
Number of bytes in a symbolic link.
| 1024 |
1024 |
SYMLOOP_MAX
|
Number of symbolic links that can be reliably traversed in the resolution
of a pathname in the absence of a loop.
| 8 |
8 |
TTY_NAME_MAX
|
Maximum length of terminal device name.
| 9 |
32 |
TZNAME_MAX
|
Maximum number of bytes supported for the name of a time zone.
| 6 |
6 |
Rationale
Each of these limits can vary within bounds set by the Base Definitions,
Issue 6.
The minimum permitted value is specified in Chapter 13, <limits.h>.
Reference
Technical Standard, Base Definitions, Issue 6,
Chapter 13, Headers, <limits.h>.
Question 6: What are the values associated with the following
constants specified in the <limits.h> header file?
Response
For each line in the table below, add the minimum and maximum values for your
implementation. These values may be stated to be "Unlimited" if your implementation does not impose a limit. The minimum should be the smallest value that is
returned from sysconf(), pathconf(), or fpathconf(), or as defined in <limits.h>. The maximum value should be the largest value that is returned from sysconf(), pathconf(), or fpathconf().
Macro Name | Meaning | Minimum | Maximum
|
BC_BASE_MAX
|
Maximum ibase and obase values allowed by the bc utility.
| 99 |
99 |
BC_DIM_MAX
|
Maximum number of elements permitted in an array by the bc utility.
| 2048 |
2048 |
BC_SCALE_MAX
|
Maximum scale value allowed by the bc utility.
| 99 |
99 |
BC_STRING_MAX
|
Maximum length of a string constant accepted by the bc utility.
| 1000 |
1000 |
CHARCLASS_NAME_MAX
|
Maximum number of bytes in a character class name.
| 14 |
2048 |
COLL_WEIGHTS_MAX
|
Maximum number of weights that can be assigned to an entry of the
LC_COLLATE order keyword in the locale definition file.
| 2 |
255 |
EXPR_NEST_MAX
|
Maximum number of expressions that can be nested within parentheses
by the expr utility.
| 32 |
32 |
LINE_MAX
|
Maximum length in bytes including the trailing newline of a utility's
input line when the utility is described as processing text files.
| 2048 |
2048 |
NGROUPS_MAX
|
Maximum number of simultaneous supplementary group IDs per process.
| 8 |
65536 |
RE_DUP_MAX
|
Maximum number of repeated occurrences of a regular expression
permitted when using interval notation.
| 255 |
32767 |
Rationale
Each of these limits can vary within bounds set by the Base
Definitions, Issue 6.
The minimum value that a limit can take on any conforming system
is given in the corresponding _POSIX_ or _POSIX2_ value.
A specific conforming implementation may provide a higher minimum value
than this and the maximum value that it provides can differ from
the minimum.
Some conforming implementations may provide a potentially infinite value
as the maximum, in which case the value is considered to be indeterminate.
The minimum value must always be definitive since the _POSIX_ or _POSIX2_
value provides a known lower bound for the range of possible values.
Reference
Technical Standard, Base Definitions, Issue 6,
Chapter 13, Headers, <limits.h>.
Question 7: What are the values associated with the following
numerical constants specified in the <limits.h> header file?
Response
Macro Name | Meaning | Value
|
CHAR_MAX
| Maximum value of a char.
| 127 |
INT_MAX
| Maximum value of an int.
| 2147483647 |
LONG_BIT
| Number of bits in a long int.
| 64 |
LONG_MAX
| Maximum value of a long int.
| 9223372036854775807 |
LLONG_MAX
| Maximum value of a long long.
| 9223372036854775807 |
MB_LEN_MAX
| Maximum number of bytes in a character, for any supported locale.
| 16 |
SHRT_MAX
| Maximum value of a short.
| 32767 |
SSIZE_MAX
| Maximum value of an object of type ssize_t.
| 9223372036854775807 |
UINT_MAX
| Maximum value of an unsigned int.
| 4294967295 |
ULONG_MAX
| Maximum value of an unsigned long int.
| 18446744073709551615 |
ULLONG_MAX
| Maximum value of a unsigned long long.
| 18446744073709551615 |
USHRT_MAX
| Maximum value of an unsigned short int.
| 65535 |
WORD_BIT
| Number of bits in a word or int.
| 32 |
Rationale
This set of constants provides useful information regarding the underlying
architecture of the implementation.
Reference
Technical Standard, Base Definitions, Issue 6,
Chapter 13, Headers, <limits.h>.
Question 8: What are the values associated with the following
numerical constants specified in the <stdio.h> header file?
Response
Macro Name | Meaning | Value
|
FILENAME_MAX
| Maximum size in bytes of the longest filename string that the implementation guarantees can be opened.
| 4096 |
FOPEN_MAX
| Number of streams which the implementation guarantees can be open simultaneously.
| 16 |
L_ctermid
| Maximum size of character array to hold ctermid() output.
| 9 |
L_tmpnam
| Maximum size of character array to hold tmpnam() output.
| 20 |
TMP_MAX
| Minimum number of unique filenames generated by tmpnam(), which is the maximum number of times an application can call tmpnam() reliably.
| 238328 |
Rationale
Reference
Technical Standard, Base Definitions, Issue 6,
Chapter 13, Headers, <stdio.h>.
1.1.5 Error Conditions
Question 9: Which of the following option errors, ( denoted
by "may fail" within the specification ), listed in
System Interfaces, Issue 6 are detected
in the circumstances specified?
Response
Function | Error | Detected
|
accept()
| EINVAL
| Yes |
ENOMEM
| Yes |
EPROTO
| No |
access()
| EINVAL
| No |
ENAMETOOLONG
| Yes |
ETXTBSY
| No |
asin() *
| Range Error
| Yes |
asinh() *
| Range Error
| Yes |
atan() *
| Range Error
| Yes |
atanh() *
| Range Error
| Yes |
atan2() *
| Range Error
| No |
bind()
| EACCESS
| Yes |
EINVAL
| Yes |
EISCONN
| No |
ELOOP
| Yes |
ENAMETOOLONG
| Yes |
ENOBUFS
| No |
catclose()
| EBADF
| Yes |
EINTR
| No |
catgets()
| EBADF
| No |
EBADMSG
| No |
EINTR
| No |
EINVAL
| No |
ENOMSG
| No |
catopen()
| EACCES
| No |
EMFILE
| No |
ENAMETOOLONG
| Yes |
ENFILE
| No |
ENOENT
| Yes |
ENOMEM
| No |
ENOTDIR
| No |
cfsetispeed()
| EINVAL
| No |
cfsetospeed()
| EINVAL
| No |
chdir()
| ENAMETOOLONG
| Yes |
ELOOP
| Yes |
chmod()
| EINTR
| Yes |
EINVAL
| No |
ELOOP
| Yes |
ENAMETOOLONG
| Yes |
chown()
| EINTR
| Yes |
EINVAL
| No |
EIO
| No |
ELOOP
| Yes |
ENAMETOOLONG
| Yes |
close()
| EIO
| Yes |
closedir()
| EBADF
| Yes |
EINTR
| Yes |
connect()
| EACCESS
| Yes |
EADDRINUSE
| Yes |
ECONNRESET
| No |
EHOSTUNREACH
| Yes |
EINVAL
| Yes |
ELOOP
| Yes |
ENAMETOOLONG
| Yes |
ENETDOWN
| Yes |
ENOBUFS
| Yes |
EOPNOTSUP
| Yes |
endpwent()
| EIO
| No |
erf() *
| Range Error
| No |
erfc() *
| Range Error
| No |
exec
| ELOOP
| Yes |
ENAMETOOLONG
| Yes |
ENOMEM
| Yes |
ETXTBSY
| No |
exp() *
| Range Error
| No |
exp2() *
| Range Error
| No |
expm1() *
| Range Error
| No |
fchdir()
| EINTR
| Yes |
EIO
| Yes |
fchmod()
| EINTR
| Yes |
EINVAL
| No |
fchown()
| EINVAL
| No |
EIO
| Yes |
EINTR
| Yes |
fclose()
| ENXIO
| No |
fcntl()
| EDEADLK
| No |
fdim() *
| Range Error
| No |
fdopen()
| EBADF
| Yes |
EINVAL
| Yes |
EMFILE
| No |
ENOMEM
| Yes |
fflush()
| ENXIO
| Yes |
fgetc()
| ENOMEM
| No |
ENXIO
| Yes |
fgetpos()
| EBADF
| No |
ESPIPE
| Yes |
fgetwc()
| ENOMEM
| No |
ENXIO
| Yes |
fileno()
| EBADF
| No |
fma() *
| Domain Error
| Yes |
Range Error
| Yes |
fmod() *
| Range Error
| Yes |
fopen()
| EINVAL
| Yes |
ELOOP
| Yes |
EMFILE
| Yes |
ENAMETOOLONG
| Yes |
ENOMEN
| Yes |
ETXTBSY
| No |
fork()
| ENOMEM
| No |
fpathconf()
| EBADF
| Yes |
EINVAL
| Yes |
fprintf()
| EINVAL
| Yes |
EILSEQ
| Yes |
ENOMEM
| Yes |
fputc()
| ENOMEM
| No |
ENXIO
| Yes |
fputwc()
| ENOMEM
| No |
ENXIO
| Yes |
fread()
| ENOMEM
| No |
ENXIO
| Yes |
freopen()
| EINVAL
| Yes |
ELOOP
| Yes |
ENAMETOOLONG
| Yes |
ENOMEM
| No |
ENXIO
| Yes |
ETXTBSY
| No |
fscanf()
| EILSEQ
| Yes |
EINVAL
| Yes |
ENOMEM
| Yes |
ENXIO
| Yes |
fstat()
| EOVERFLOW
| No |
ftell()
| ESPIPE
| Yes |
ftok()
| ELOOP
| Yes |
ENAMETOOLONG
| Yes |
ftw()
| EINVAL
| Yes |
ELOOP
| Yes |
ENAMETOOLONG
| Yes |
fwide()
| EBADF
| No |
fwprintf()
| ENOMEM
| Yes |
ENXIO
| Yes |
EILSEQ
| Yes |
EINVAL
| Yes |
fwscanf()
| ENOMEM
| Yes |
ENXIO
| Yes |
EILSEQ
| Yes |
EINVAL
| Yes |
getcwd()
| EACCES
| Yes |
ENOMEM
| Yes |
getgrent()
| EINTR
| No |
EIO
| No |
EMFILE
| No |
ENFILE
| No |
getgrgid()
| EIO
| No |
EINTR
| No |
EMFILE
| No |
ENFILE
| No |
getgrgid_r()
| ERANGE
| Yes |
getgrnam()
| EIO
| No |
EINTR
| No |
EMFILE
| No |
ENFILE
| No |
getgrnam_r()
| ERANGE
| Yes |
getitimer()
| EINVAL
| Yes |
getlogin()
| EMFILE
| No |
ENFILE
| No |
ENXIO
| No |
getlogin_r()
| ERANGE
| Yes |
getpeername()
| ENOBUFS
| No |
getpgid()
| EINVAL
| No |
getpwent()
| EIO
| No |
EMFILE
| No |
ENFILE
| No |
getpwnam()
| EIO
| No |
EINTR
| No |
EMFILE
| No |
ENFILE
| No |
getpwnam_r()
| ERANGE
| Yes |
getpwuid()
| EIO
| No |
EINTR
| No |
EMFILE
| No |
ENFILE
| No |
getpwuid_r()
| ERANGE
| Yes |
getsockname()
| EINVAL
| Yes |
ENOBUFS
| Yes |
getsockopt()
| EACCESS
| No |
EINVAL
| Yes |
ENOBUFS
| Yes |
grantpt()
| EBADF
| Yes |
EINVAL
| No |
EACCES
| Yes |
hcreate()
| ENOMEM
| Yes |
hsearch()
| ENOMEM
| Yes |
hypot() *
| Range Error
| No |
iconv()
| EBADF
| No |
iconv_close()
| EBADF
| No |
iconv_open()
| EMFILE
| No |
ENFILE
| No |
ENOMEM
| No |
EINVAL
| Yes |
if_nameindex()
| ENOBUFS
| Yes |
isatty()
| EBADF
| Yes |
ENOTTY
| Yes |
j0()
| Range Error
| No |
j1()
| Range Error
| No |
jn()
| Range Error
| No |
lchown()
| EIO
| No |
EINTR
| Yes |
ELOOP
| Yes |
ENAMETOOLONG
| Yes |
ldexp() *
| Range Error
| No |
link()
| ELOOP
| Yes |
ENAMETOOLONG
| Yes |
listen()
| EACCESS
| Yes |
EINVAL
| Yes |
ENOBUFS
| No |
lockf()
| EAGAIN
| No |
EDEADLK
| No |
EINVAL
| Yes |
ENOLCK
| No |
EOPNOTSUPP
| Yes |
log1p() *
| Range Error
| Yes |
lstat()
| ELOOP
| Yes |
ENAMETOOLONG
| Yes |
EOVERFLOW
| No |
mblen()
| EILSEQ
| Yes |
mbrlen()
| EINVAL
| Yes |
EILSEQ
| Yes |
mbrtowc()
| EINVAL
| Yes |
EILSEQ
| Yes |
mbsrtowcs()
| EINVAL
| Yes |
EILSEQ
| Yes |
mbstowcs()
| EILSEQ
| Yes |
mbtowc()
| EILSEQ
| Yes |
mkdir()
| ELOOP
| Yes |
ENAMETOOLONG
| Yes |
mkfifo()
| ELOOP
| Yes |
ENAMETOOLONG
| Yes |
mknod()
| ELOOP
| Yes |
ENAMETOOLONG
| Yes |
nftw()
| ELOOP
| Yes |
EMFILE
| Yes |
ENAMETOOLONG
| Yes |
ENFILE
| Yes |
open()
| EAGAIN
| Yes |
EINVAL
| Yes |
ELOOP
| Yes |
ENAMETOOLONG
| Yes |
ENOMEM
| No |
ETXTBSY
| No |
opendir()
| ELOOP
| Yes |
EMFILE
| No |
ENAMETOOLONG
| Yes |
ENFILE
| No |
pathconf()
| EACCES
| Yes |
EINVAL
| Yes |
ELOOP
| Yes |
ENAMETOOLONG
| Yes |
ENOENT
| Yes |
ENOTDIR
| Yes |
popen()
| EMFILE
| Yes |
EINVAL
| Yes |
posix_openpt()
| EINVAL
| Yes |
EAGAIN
| Yes |
pow() *
| Range Error
| Yes |
pread()
| ENXIO
| Yes |
printf()
| ENOMEM
| Yes |
pthread_attr_setstack() | EACCESS | No |
EINVAL | Yes |
pthread_cancel() | ESRCH | Yes |
pthread_cond_broadcast() | EINVAL | Yes |
pthread_cond_destroy() | EBUSY | Yes |
EINVAL | Yes |
pthread_cond_init() | EBUSY | No |
EINVAL | No |
pthread_cond_signal() | EINVAL | Yes |
pthread_cond_timedwait() | EINVAL | Yes |
pthread_cond_wait() | EINVAL | Yes |
pthread_condattr_destroy() | EINVAL | No |
pthread_condattr_setpshared() | EINVAL | Yes |
pthread_join() | EDEADLK | No |
pthread_key_delete() | EINVAL | Yes |
pthread_mutex_destroy() | EBUSY | Yes |
EINVAL | Yes |
pthread_mutex_init() | EBUSY | No |
EINVAL | Yes |
pthread_mutex_lock() | EINVAL | Yes |
EAGAIN | Yes |
EDEADLK | Yes |
pthread_mutex_trylock() | EINVAL | Yes |
EAGAIN | Yes |
pthread_mutex_unlock() | EINVAL | Yes |
EAGAIN | No |
EPERM | Yes |
pthread_mutexattr_destroy() | EINVAL | Yes |
pthread_mutexattr_gettype() | EINVAL | Yes |
pthread_mutexattr_init() | ENOMEM | No |
pthread_mutexattr_setpshared() | EINVAL | Yes |
pthread_mutexattr_settype() | EINVAL | Yes |
pthread_once() | EINVAL | No |
pthread_rwlock_destroy() | EBUSY | Yes |
EINVAL | Yes |
pthread_rwlock_init() | EBUSY | Yes |
EINVAL | Yes |
pthread_rwlock_rdlock() | EINVAL | Yes |
EDEADLK | Yes |
EAGAIN | Yes |
pthread_rwlock_tryrdlock() | EINVAL | Yes |
EAGAIN | Yes |
pthread_rwlock_trywrlock() | EINVAL | Yes |
pthread_rwlock_unlock() | EINVAL | Yes |
EPERM | No |
pthread_rwlock_wrlock() | EINVAL | Yes |
EDEADLK | Yes |
pthread_rwlockattr_destroy() | EINVAL | No |
pthread_rwlockattr_setpshared() | EINVAL | Yes |
pthread_setcancelstate() | EINVAL | Yes |
pthread_setcanceltype() | EINVAL | Yes |
pthread_setspecific() | EINVAL | Yes |
putc() | ENOMEM | No |
ENXIO | Yes |
putchar() | ENOMEM | No |
ENXIO | Yes |
putenv()
| ENOMEM
| Yes |
puts() | ENOMEM | Yes |
ENXIO | Yes |
pututxline()
| EPERM
| Yes |
putwc() | ENOMEM | No |
ENXIO | Yes |
EILSEQ | Yes |
putwchar() | ENOMEM | No |
ENXIO | Yes |
EILSEQ | Yes |
pwrite() | EINVAL | No |
ENXIO | Yes |
read()
| EIO
| Yes |
ENOBUFS
| Yes |
ENOMEM
| Yes |
ENXIO
| Yes |
readdir()
| EBADF
| Yes |
ENOENT
| No |
readdir_r()
| EBADF
| Yes |
readlink()
| EACCES
| No |
ELOOP
| Yes |
ENAMETOOLONG
| Yes |
readv()
| EINVAL
| Yes |
realpath()
| ELOOP
| Yes |
ENAMETOOLONG
| Yes |
ENOMEM
| No |
recv()
| EIO
| No |
ENOBUFS
| Yes |
ENOMEM
| No |
recvfrom()
| EIO
| No |
ENOBUFS
| Yes |
ENOMEM
| No |
recvmsg()
| EIO
| No |
ENOBUFS
| Yes |
ENOMEM
| Yes |
remove()
| EBUSY
| No |
ELOOP
| Yes |
ENAMETOOLONG
| Yes |
ETXTBSY
| No |
rename()
| EBUSY
| No |
ELOOP
| Yes |
ENAMETOOLONG
| Yes |
ETXTBSY
| No |
rmdir()
| ELOOP
| Yes |
ENAMETOOLONG
| Yes |
round() *
| Range Error
| Yes |
scalb() *
| Range Error
| Yes |
send()
| EACCESS
| Yes |
EIO
| No |
ENETDOWN
| Yes |
ENETUNREACH
| Yes |
ENOBUFS
| Yes |
sendmsg()
| EACCESS
| Yes |
EDESTADDRREQ
| Yes |
EHOSTUNREACH
| Yes |
EIO
| Yes |
EISCONN
| Yes |
ENETDOWN
| Yes |
ENETUNREACH
| Yes |
ENOBUFS
| Yes |
ENOMEM
| Yes |
sendto()
| EACCESS
| Yes |
EDESTADDRREQ
| Yes |
EHOSTUNREACH
| Yes |
EIO
| Yes |
EISCONN
| Yes |
ENETDOWN
| Yes |
ENETUNREACH
| Yes |
ENOBUFS
| Yes |
ENOMEM
| Yes |
setitimer()
| EINVAL
| Yes |
setpriority()
| EPERM
| Yes |
EACCES
| Yes |
setpwent()
| EIO
| No |
EMFILE
| No |
ENFILE
| No |
setrlimit()
| EINVAL
| Yes |
setsockopt()
| ENOMEM
| No |
ENOBUFS
| Yes |
setvbuf()
| EBADF
| Yes |
shmctl()
| EOVERFLOW
| No |
shutdown()
| ENOBUFS
| Yes |
sigaction()
| EINVAL
| Yes |
sigaddset()
| EINVAL
| No |
sigdelset()
| EINVAL
| No |
sigismember()
| EINVAL
| No |
signal()
| EINVAL
| Yes |
sigwait()
| EINVAL
| Yes |
sin() *
| Range Error
| Yes |
sinh() *
| Range Error
| Yes |
socket()
| EACCESS
| Yes |
ENOBUFS
| Yes |
ENOMEM
| Yes |
socketpair()
| EACCESS
| No |
ENOBUFS
| No |
ENOMEM
| No |
stat()
| ELOOP
| Yes |
ENAMETOOLONG
| Yes |
EOVERFLOW
| Yes |
statvfs()
| ELOOP
| Yes |
ENAMETOOLONG
| Yes |
strcoll()
| EINVAL
| No |
strdup()
| ENOMEM
| Yes |
strerror()
| EINVAL
| Yes |
strerror_r()
| ERANGE
| Yes |
strtod()
| EINVAL
| Yes |
strtoimax()
| EINVAL
| No |
strtol()
| EINVAL
| Yes |
strtoumax()
| EINVAL
| No |
strtoul()
| EINVAL
| Yes |
strxfrm()
| EINVAL
| Yes |
swprintf()
|
EILSEQ
| No |
EINVAL
| Yes |
swcsanf()
| ENOMEM
| Yes |
ENXIO
| Yes |
EILSEQ
| Yes |
symlink()
| ELOOP
| Yes |
ENAMETOOLONG
| Yes |
system()
| ECHILD
| Yes |
tan() *
| Range Error
| No |
tanh() *
| Range Error
| No |
tcdrain()
| EIO
| Yes |
tcflow()
| EIO
| Yes |
tcflush()
| EIO
| Yes |
tcsendbreak()
| EIO
| Yes |
tcsetattr()
| EIO
| Yes |
tmpfile()
| EMFILE
| Yes |
ENOMEM
| No |
towctrans()
| EINVAL
| Yes |
truncate()
| ELOOP
| Yes |
ENAMETOOLONG
| Yes |
ttyname()
| EBADF
| Yes |
ENOTTY
| Yes |
ttyname_r()
| EBADF
| Yes |
ENOTTY
| Yes |
ERANGE
| Yes |
ungetwc()
| EILSEQ
| Yes |
unlink()
| EBUSY
| Yes |
ELOOP
| Yes |
ENAMETOOLONG
| Yes |
ETXTBSY
| No |
unlockpt()
| EBADF
| Yes |
EINVAL
| Yes |
usleep()
| EINVAL
| Yes |
utime()
| ELOOP
| Yes |
ENAMETOOLONG
| Yes |
utimes()
| ELOOP
| Yes |
ENAMETOOLONG
| Yes |
vfscanf()
| EILSEQ
| Yes |
EINVAL
| Yes |
ENOMEM
| Yes |
ENXIO
| No |
vfwprintf()
| ENOMEM
| Yes |
ENXIO
| Yes |
EILSEQ
| Yes |
EINVAL
| Yes |
vfwscanf()
| ENOMEM
| Yes |
ENXIO
| Yes |
EILSEQ
| Yes |
EINVAL
| Yes |
wcrtomb()
| EINVAL
| Yes |
EILSEQ
| Yes |
wcscoll()
| EINVAL
| Yes |
wcsrtombs()
| EINVAL
| Yes |
EILSEQ
| Yes |
wcstod()
| EINVAL
| Yes |
wcstoimax()
| EINVAL
| Yes |
wcstoumax()
| EINVAL
| Yes |
wcstol()
| EINVAL
| Yes |
wcstombs()
| EILSEQ
| Yes |
wcstoul()
| EINVAL
| Yes |
wcsxfrm()
| EINVAL
| Yes |
wctrans()
| EINVAL
| Yes |
wprintf()
| ENOMEM
| Yes |
ENXIO
| Yes |
EILSEQ
| Yes |
EINVAL
| Yes |
write()
| EINVAL
| Yes |
ENETDOWN
| No |
ENETUNREACH
| No |
ENXIO
| Yes |
writev()
| EINVAL
| Yes |
wscanf()
| ENOMEM
| Yes |
ENXIO
| Yes |
EILSEQ
| Yes |
y0()
| Domain Error
| Yes |
Range Error
| Yes |
y1()
| Domain Error
| Yes |
Range Error
| Yes |
yn()
| Domain Error
| Yes |
Range Error
| Yes |
Rationale
Each of the above error conditions is marked as optional in System
Interfaces, Issue 6 and an implementation may
return this error in the circumstances specified or may not provide
the error indication.
Reference
Technical Standard, System Interfaces, Issue 6,
Section 2.3, Error Numbers.
1.1.6 Mathematical Interfaces
Question 10: What format of floating-point numbers is supported
by this implementation?
Response
Rationale
Most implementations support IEEE floating-point format either
in hardware or software.
Some implementations support other formats with different exponent
and mantissa accuracy.
These differences need to be defined.
Reference
Technical Standard, System Interfaces, Issue 6,
Section 1.7, Relationship to Other Formal Standards.
Question 11: Which floating-point exceptions are supported
by this implementation for the
fegetexecptflag(),
feraiseexcept(),
fesetexecptflag(), and
fetestexecptflag() functions?
Response
Rationale
The behavior of a conforming implementation in this area is not
mandated in the specification and needs to be defined.
Reference
Technical Standard, Base Definitions, Issue 6,
Chapter 13, Headers, <fenv.h>.
Question 12: Which floating-point rounding directions are supported
by this implementation for the
fegetround(), and
fesetround() functions?
Response
Rationale
The behavior of a conforming implementation in this area is not
mandated in the specification and needs to be defined.
Reference
Technical Standard, Base Definitions, Issue 6,
Chapter 13, Headers, <fenv.h>.
Question 13: Is a non-stop floating-point exception mode supported
by this implementation?
Response
Rationale
The behavior of a conforming implementation in this area is not
mandated in the specification and needs to be defined.
Reference
Technical Standard, System Interfaces, Issue 6,
Chapter 3, System Interfaces, feholdexcept().
1.1.7 Data Encryption
Question 14: Are the optional data encryption interfaces provided?
Response
Function | Provided
|
crypt()
| Yes |
encrypt()
| Yes |
setkey()
| Yes |
Export Restrictions:
None.
Rationale
Normally, an implementation will either provide all three of these
routines or will provide none of them at all.
If the routines are not provided, then the implementation must provide
a dummy interface which always raises an ENOSYS error condition.
It is also possible that the implementation of the encrypt()
function may be affected by export restrictions, in which case,
the restrictions should be documented here.
For example, historical implementations have supplied all three of these
routines outside the U.S.A., but due to export restrictions on the decoding
algorithm, a dummy version of encrypt() is provided that does
encoding but no decoding.
Reference
Technical Standard, Base Definitions, Issue 6,
Section 2, Conformance.
1.2 Process Handling
1.2.1 Process Generation
Question 15: Which file types (regular, directory, FIFO, special
and so on) are considered to be executable?
Response
Rationale
The EACCES error associated with exec functions occurs in
circumstances when the implementation does not support execution of
files of the type specified.
A list of these file types needs to be provided.
Reference
Technical Standard, System Interfaces, Issue 6,
Chapter 3, System Interfaces, exec.
1.3 File Handling
1.3.1 Access Control
Question 16: What file access control mechanisms does the
implementation provide?
Response
Rationale
System Interfaces, Issue 6 notes that
implementations may provide additional or alternate
file access control mechanisms, or both.
Reference
Technical Standard, Base Definitions, Issue 6,
Chapter 4, General Concepts, Section 4.4, File Access Permissions.
1.3.2 Files and Directories
Question 17: Are any additional or alternate file access control
mechanisms implemented that could cause fstat() or
stat() to fail?
Response
Rationale
System Interfaces, Issue 6 notes that there could
be an interaction between additional and alternate access controls and
the success of fstat() and stat().
This would suggest that an implementation can allow access to a file
but not allow the process to gain information about the status of the file.
Reference
Technical Standard, System Interfaces, Issue 6,
Chapter 3, System Interfaces, fstat()
and stat().
1.4 Internationalized System Interfaces
1.4.1 Coded Character Sets
Question 18: What coded character sets are supported by the
implementation?
Response
ANSI_X3.110-1983 ANSI_X3.4-1968 ARMSCII-8 ASMO_449 BIG5 BIG5-HKSCS BRF BS_4730 BS_VIEWDATA CP10007 CP1125 CP1250 CP1251 CP1252 CP1253 CP1254 CP1255 CP1256 CP1257 CP1258 CP737 CP775 CP949 CSA_Z243.4-1985-1 CSA_Z243.4-1985-2 CSA_Z243.4-1985-GR CSN_369103 CWI DEC-MCS DIN_66003 DS_2089 EBCDIC-AT-DE EBCDIC-AT-DE-A EBCDIC-CA-FR EBCDIC-DK-NO EBCDIC-DK-NO-A EBCDIC-ES EBCDIC-ES-A EBCDIC-ES-S EBCDIC-FI-SE EBCDIC-FI-SE-A EBCDIC-FR EBCDIC-IS-FRISS EBCDIC-IT EBCDIC-PT EBCDIC-UK EBCDIC-US ECMA-CYRILLIC ES ES2 EUC-JISX0213 EUC-JP EUC-JP-MS EUC-KR EUC-TW GB18030 GB_1988-80 GB2312 GBK GEORGIAN-ACADEMY GEORGIAN-PS GOST_19768-74 GREEK7 GREEK7-OLD GREEK-CCITT HP-GREEK8 HP-ROMAN8 HP-ROMAN9 HP-THAI8 HP-TURKISH8 IBM037 IBM038 IBM1004 IBM1026 IBM1047 IBM1124 IBM1129 IBM1132 IBM1133 IBM1160 IBM1161 IBM1162 IBM1163 IBM1164 IBM256 IBM273 IBM274 IBM275 IBM277 IBM278 IBM280 IBM281 IBM284 IBM285 IBM290 IBM297 IBM420 IBM423 IBM424 IBM437 IBM500 IBM850 IBM851 IBM852 IBM855 IBM856 IBM857 IBM860 IBM861 IBM862 IBM863 IBM864 IBM865 IBM866 IBM866NAV IBM868 IBM869 IBM870 IBM871 IBM874 IBM875 IBM880 IBM891 IBM903 IBM904 IBM905 IBM918 IBM922 IEC_P27-1 INIS INIS-8 INIS-CYRILLIC INVARIANT ISIRI-3342 ISO_10367-BOX ISO_10646 ISO_11548-1 ISO_2033-1983 ISO_5427 ISO_5427-EXT ISO_5428 ISO_646.BASIC ISO_646.IRV ISO_6937 ISO_6937-2-25 ISO_6937-2-ADD ISO-8859-1 ISO-8859-10 ISO-8859-11 ISO-8859-13 ISO-8859-14 ISO-8859-15 ISO-8859-16 ISO_8859-1,GL ISO-8859-2 ISO-8859-3 ISO-8859-4 ISO-8859-5 ISO-8859-6 ISO-8859-7 ISO-8859-8 ISO-8859-9 ISO-8859-9E ISO_8859-SUPP ISO-IR-197 ISO-IR-209 ISO-IR-90 IT JIS_C6220-1969-JP JIS_C6220-1969-RO JIS_C6229-1984-A JIS_C6229-1984-B JIS_C6229-1984-B-ADD JIS_C6229-1984-HAND JIS_C6229-1984-HAND-ADD JIS_C6229-1984-KANA JIS_X0201 JOHAB JUS_I.B1.002 JUS_I.B1.003-MAC JUS_I.B1.003-SERB KOI-8 KOI8-R KOI8-RU KOI8-T KOI8-U KSC5636 LATIN-GREEK LATIN-GREEK-1 MAC-CENTRALEUROPE MAC-CYRILLIC MACINTOSH MAC-IS MAC-SAMI MAC-UK MIK MSZ_7795.3 NATS-DANO NATS-DANO-ADD NATS-SEFI NATS-SEFI-ADD NC_NC00-10 NEXTSTEP NF_Z_62-010 NF_Z_62-010_1973 NS_4551-1 NS_4551-2 PT PT154 PT2 RK1048 SAMI SAMI-WS2 SEN_850200_B SEN_850200_C SHIFT_JIS SHIFT_JISX0213 T.101-G2 T.61-7BIT T.61-8BIT TCVN5712-1 TIS-620 TSCII UTF-8 VIDEOTEX-SUPPL VISCII WINDOWS-31J
Rationale
Base Definitions, Issue 6 states that conforming
implementations support one or more coded character sets, and that
each of these includes the portable character set.
Reference
Technical Standard, Base Definitions, Issue 6,
Chapter 6, Character Set.
Question 19: What is the implementation's underlying internal
codeset?
Response
Rationale
Reference
Technical Standard, Base Definitions, Issue 6,
Chapter 6, Character Set.
1.5 Pseudo-Terminals
1.5.1 Master close
Question 20: Does closing the master side of a pseudo-terminal flush
all queued input and output?
Response
Rationale
The behaviour of a conforming implementation in this area is not
mandated in the specification and needs to be defined.
Reference
Technical Standard, System Interfaces, Issue 6,
Chapter 3, System Interfaces, close().
1.5.2 Slave close
Question 21: Does closing the slave side of a pseudo-terminal cause a
zero-length message to be sent to the master?
Response
Rationale
The behaviour of a conforming implementation in this area is not
mandated in the specification and needs to be defined.
Reference
Technical Standard, System Interfaces, Issue 6,
Chapter 3, System Interfaces, close().
1.5.3 Naming Conventions
Question 22: What naming conventions are associated with the master
side of pseudo-terminal devices?
Response
Rationale
This information is not specified in System Interfaces, Issue 6,
and needs to be defined.
Reference
Technical Standard, System Interfaces, Issue 6,
Chapter 3, System Interfaces, open().
1.6 Polling
Question 23: What types of file can be polled?
Response
Regular files, Terminals, Pseudo-Terminals, Sockets, FIFOs, Pipes
Rationale
Conformance requires that the poll() function
supports regular files, terminals, pseudo-terminals, STREAMS, sockets,
FIFOs, and pipes. The behaviour of poll() with regards to other
file types needs to be defined.
Reference
Technical Standard, System Interfaces, Issue 6,
Chapter 3, System Interfaces, poll().
1.7 Stack Growth Direction
Question 24: What is the direction of stack growth?
Response
Rationale
The specification does not define the direction of stack growth
but an application needs this information to define an alternate
stack for signals.
Reference
Technical Standard, System Interfaces, Issue 6,
Chapter 3, System Interfaces, sigaltstack().
Conformance requires that an implementation supports
alternate signal stacks. The APPLICATION USAGE section of the
sigaltstack() entry describes one method using malloc() to
perform this function. However, the specification does not guarantee
that malloc'ed space can be used in this way, nor does it define a
specific alternate stack allocation routine.
1.8 Signal Codes
Question 25: Which of the following si_code values may be
generated?
Response
Signal | Code | Generated?
|
SIGILL
| ILL_ILLOPC
| Yes |
ILL_ILLOPN
| Yes |
ILLL_ILLADR
| Yes |
ILL_ILLTRP
| Yes |
ILL_PRVOPC
| Yes |
ILL_PRVREG
| Yes |
ILL_COPROC
| Yes |
ILL_BADSTK
| Yes |
SIGFPE
| FPE_INTDIV
| Yes |
FPE_INTOVF
| Yes |
FPE_FLTDIV
| Yes |
FPE_FLTOVF
| Yes |
FPE_FLTUND
| Yes |
FPE_FLTRES
| Yes |
FPE_FLTINV
| Yes |
FPE_FLTSUB
| Yes |
SIGSEGV
| SEGV_MAPERR
| Yes |
SEGV_ACCERR
| Yes |
SIGBUS
| BUS_ADRALN
| Yes |
BUS_ADRERR
| Yes |
BUS_OBJERR
| Yes |
SIGTRAP
| TRAP_BRKPT
| Yes |
TRAP_TRACE
| Yes |
SIGCHLD
| CLD_EXITED
| Yes |
CLD_KILLED
| Yes |
CLD_DUMPED
| Yes |
CLD_TRAPPED
| Yes |
CLD_STOPPED
| Yes |
CLD_CONTINUED
| Yes |
SIGPOLL
| POLL_IN
| Yes |
POLL_OUT
| Yes |
POLL_MSG
| Yes |
POLL_ERR
| Yes |
POLL_PRI
| Yes |
POLL_HUP
| Yes |
Any
| SI_USER
| Yes |
SI_QUEUE
| Yes |
SI_TIMER
| Yes |
SI_ASYNCIO
| Yes |
SI_MESGQ
| Yes |
Rationale
An Internationalized System Calls and Libraries Extended V3 conformant
system may contain limitations that prevent some of the above values
from being generated.
Reference
Technical Standard, System Interfaces, Issue 6,
Chapter 13, Headers, <signal.h>.
1.9 Set Process Group ID
Question 26: Does the setpgrp() function create a new
session?
Response
Rationale
It is unspecified whether or not a successful call to the
setpgrp() function will cause a new session to be created.
Reference
Technical Standard, System Interfaces, Issue 6,
Chapter 3, System Interfaces, setpgrp().
1.10 Signals Generating a Core File
Question 27: Does the implementation generate a core file when
the following signals are delivered to a process?
Response
Signal | Core File Generated
|
---|
SIGABRT | Yes |
SIGFPE | Yes |
SIGILL | Yes |
SIGQUIT | Yes |
SIGSEGV | Yes |
SIGBUS | Yes |
SIGSYS | Yes |
SIGTRAP | Yes |
SIGXCPU | Yes |
SIGXFSZ | Yes |
Rationale
Implementation-defined actions, such as creation of a core file,
may occur on abnormal termination of a process.
Reference
Technical Standard, Base Definitions, Issue 6,
Chapter 13, Headers, <signal.h>.
1.11 Sockets
1.11.1 Listen Queues
Question 28: What is the limit the implementation places on the
length of a socket's listen queue?
Response
Rationale
The specification states that an implementation may limit the length
of a socket's listen queue, and that this limit may be imposed if the
setting of the backlog argument exceeds an
implementation-defined maximum value.
Reference
Technical Standard, System Interfaces, Issue 6,
Chapter 3, listen().
1.11.2 Address Families, Socket Types, and Protocols
Question 29: What combinations of address family,
socket types, and protocols does the implementation support?
Response
Address Family | Protocol | Socket Type | Supported? |
AF_UNIX | N/A | STREAM | Yes |
AF_UNIX | N/A | SEQPACKET | No |
AF_UNIX | N/A | DGRAM | Yes |
AF_INET | TCP | STREAM | Yes |
AF_INET | UDP | DGRAM | Yes |
AF_INET6 | TCP | STREAM | Yes |
AF_INET6 | UDP | DGRAM | Yes |
If any additional combinations are supported please list them below.
None.
Rationale
The specification states that the domains, socket types and protocols supported by a conforming system are implementation-defined.
The Internationalized System Calls and Libraries Extended V3 Product Standard
states that conforming products
shall be available in configurations that support at
least following socket domains:
-
AF_INET, with at least SOCK_STREAM and SOCK_DGRAM socket types
-
AF_UNIX, with at least the SOCK_STREAM socket type.
Reference
Technical Standard, System Interfaces, Issue 6,
Chapter 2.10, Sockets.
Product Standard, Internationalized System Calls and Libraries Extended V3.
1.11.3 Socket Types
Question 30: What socket types does the implementation support?
Response
SOCK_STREAM, SOCK_DGRAM, SOCK_RAW, SOCK_SEQPACKET, SOCK_PACKET
Rationale
The specification states that there are four socket types defined -
SOCK_RAW, SOCK_STREAM, SOCK_SEQPACKET and SOCK_DGRAM - but does not
state which are required. Implementations may also support additional
socket types.
Reference
Technical Standard, System Interfaces, Issue 6,
Chapter 2.10, Sockets, Section 2.10.6, Socket Types.
1.12 Threads
1.12.1 Cancellation Points
Question 31: Which functions have cancellation points that occur
when a thread is executing?
Response
Function | Cancellation Point? |
catclose() | No |
catgets() | No |
catopen() | No |
closedir() | No |
closelog() | No |
ctermid() | No |
dbm_close() | Yes |
dbm_delete() | Yes |
dbm_fetch() | Yes |
dbm_nextkey() | Yes |
dbm_open() | Yes |
dbm_store() | Yes |
dlclose() | No |
dlopen() | No |
endgrent() | No |
endhostent() | No |
endnetent() | No |
endprotoent() | No |
endpwent() | No |
endservent() | No |
endutxent() | No |
fclose() | No |
fcntl() | Yes |
fflush() | No |
fgetc() | Yes |
fgetpos() | Yes |
fgets() | Yes |
fgetwc() | Yes |
fgetws() | Yes |
fopen() | Yes |
fprintf() | No |
fputc() | No |
fputs() | No |
fputwc() | Yes |
fputws() | Yes |
fread() | Yes |
freopen() | Yes |
fscanf() | Yes |
fseek() | Yes |
fseeko() | Yes |
fsetpos() | Yes |
ftell() | Yes |
ftello() | Yes |
ftw() | Yes |
fwprintf() | Yes |
fwrite() | No |
fwscanf() | Yes |
getc() | Yes |
getc_unlocked() | Yes |
getchar() | Yes |
getchar_unlocked() | Yes |
getcwd() | No |
getdate() | No |
getgrent() | Yes |
getgrgid() | Yes |
getgrgid_r() | Yes |
getgrnam() | Yes |
getgrnam_r() | Yes |
gethostbyaddr() | Yes |
gethostbyname() | Yes |
gethostent() | Yes |
gethostname() | No |
getlogin() | Yes |
getlogin_r() | Yes |
getnetbyaddr() | Yes |
getnetbyname() | Yes |
getnetent() | Yes |
getprotobyname() | Yes |
getprotobynumber() | Yes |
getprotoent() | Yes |
getpwent() | Yes |
getpwnam() | Yes |
getpwnam_r() | Yes |
getpwuid() | Yes |
getpwuid_r() | Yes |
gets() | Yes |
getservbyname() | Yes |
getservbyport() | Yes |
getservent() | Yes |
getutxent() | Yes |
getutxid() | Yes |
getutxline() | No |
getwc() | Yes |
getwchar() | Yes |
getwd() | No |
glob() | No |
iconv_close() | No |
iconv_open() | No |
ioctl() | No |
lseek() | Yes |
mkstemp() | Yes |
nftw() | Yes |
opendir() | No |
openlog() | No |
pclose() | No |
perror() | Yes |
popen() | No |
printf() | Yes |
pthread_rwlock_rdlock() | No |
pthread_rwlock_wrlock() | No |
putc() | No |
putc_unlocked() | No |
putchar() | Yes |
putchar_unlocked() | Yes |
puts() | Yes |
pututxline() | Yes |
putwc() | Yes |
putwchar() | No |
readdir() | No |
readdir_r() | No |
remove() | No |
rename() | No |
rewind() | Yes |
rewinddir() | Yes |
scanf() | Yes |
seekdir() | Yes |
semop() | No |
setgrent() | Yes |
sethostent() | Yes |
setnetent() | Yes |
setprotoent() | Yes |
setpwent() | Yes |
setutxent() | Yes |
strerror() | No |
syslog() | Yes |
tmpfile() | Yes |
tmpnam() | No |
ttyname() | No |
ttyname_r() | No |
ungetc() | No |
ungetwc() | Yes |
unlink() | No |
vfprintf() | No |
vfwprintf() | Yes |
vprintf() | Yes |
vwprintf() | No |
wprintf() | No |
wscanf() | Yes |
Rationale
Base Definitions, Issue 6 states that a cancellation
point may occur for these functions.
Reference
Technical Standard, System Interfaces, Issue 6,
Section 2.9.5.2, Cancellation Points.
1.13 C-language Compilation Environment
Question 32: What C-language compilation environments are provided?
Response
Programming Environment | Provided |
The implementation provides a C-language compilation environment with
32-bit int, long, pointer and off_t types.
| No |
The implementation provides a C-language compilation environment with
32-bit int, long and pointer types and an off_t type using at least
64 bits.
| No |
The implementation provides a C-language compilation environment with
32-bit int, and 64-bit long, pointer and off_t types.
| Yes |
The implementation provides a C-language compilation environment with
int using at least 32-bits, and long, pointer and off_t types using
at least 64 bits.
| No |
Rationale
Base Definitions, Issue 6 defines these scenarios
as possible C-language compilation environment offerings.
Reference
Technical Standard, Base Definitions, Issue 6,
Chapter 13, Headers, <unistd.h>.
Question 33: What execution environments are provided on the system under test?
Response
Execution Environment | Provided |
The implementation provides an execution environment with
32-bit int, long, pointer and off_t types.
| No |
The implementation provides an execution environment with
32-bit int, long and pointer types and an off_t type using at least
64 bits.
| No |
The implementation provides an execution environment with
32-bit int, and 64-bit long, pointer and off_t types.
| Yes |
The implementation provides an execution environment with
int using at least 32-bits, and long, pointer and off_t types using
at least 64 bits.
| No |
Rationale
Base Definitions, Issue 6 defines four scenarios
as possible C-language compilation environment offerings but does
not define which corresponding execution environments are supported.
Reference
Technical Standard, Base Definitions, Issue 6,
Chapter 13, Headers, <unistd.h>.
1.14 Realtime
1.14.1 Prioritized I/O
Question 34: Does the implementation support _POSIX_PRIORITIZED_IO?
Response
Rationale
Reference
Technical Standard, Base Definitions, Issue 6,
Section 2.1.5.2
Technical Standard, System Interfaces, Issue 6,
Section 2.8
1.14.2 Cancelable Asynchronous I/O Operations
Question 35: If the Realtime Option Group is supported, what
asynchronous I/O operations are cancelable with aio_cancel()?
Response
Rationale
Reference
Technical Standard, System Interfaces, Issue 6,
Chapter 3, System Interfaces, aio_cancel().
1.15 Realtime Threads
1.15.1 Scheduling Policies
Question 36: If the Realtime Threads Option Group is supported,
what scheduling policy is associated with SCHED_OTHER?
Response
Rationale
Base Definitions, Issue 6 states that conforming implementations
must support a scheduling policy identified as SCHED_OTHER but define
its effects as implementation-defined.
Reference
Technical Standard, System Interfaces, Issue 6,
Section 2.8.4, Scheduling Policies.
1.15.2 Scheduling Contention Scope
Question 37: If the Realtime Threads Option Group is supported, what
scheduling contention scopes are supported: PTHREAD_SCOPE_PROCESS,
PTHREAD_SCOPE_SYSTEM, or both?
Response
Rationale
System Interfaces, Issue 6 states that conforming implementations
will support PTHREAD_SCOPE_PROCESS, PTHREAD_SCOPE_SYSTEM, or both.
Reference
Technical Standard, System Interfaces, Issue 6,
Section 2.9.4, Thread Scheduling Contention Scope.
1.15.3 Default Scheduling Contention Scope
Question 38: If the Realtime Threads Option Group is supported, what is
the default scheduling contention scope when a process is created?
Response
Rationale
Reference
Technical Standard, System Interfaces, Issue 6,
Section 2.9.4, Thread Scheduling Attributes.
2. Appendix
This appendix contains additional, explanatory material that was provided by the vendor.
Copyright © 2016
All rights reserved.
3. Change History
Date | Name | Comment |
11-Aug-2016
| Peng Shen |
EulerOS 2.0 |
Copyright © 1998-2016 The Open Group. All Rights Reserved.
The Open Group and Boundaryless Information Flow are trademarks
and UNIX is a registered trademark of The Open Group in the United States
and other countries. All other trademarks are the property of their
respective owners.