Oracle Corporation Conformance Statement
| |
Home About Us A-Z Index Search • |
Organization | Sun Microsystems, Inc. |
---|---|
Author | Kristin Amundsen |
Product Identification | Version/Release Number | Product Supplier | |
---|---|---|---|
1. | Solaris Operating System on SPARC | 10 and on | Sun Microsystems, Inc. |
2. | Solaris Operating System on X86 | 10 and on | Sun Microsystems, Inc. |
Testing Environment | Binary-compatible Family | Portability Environment | Indicator of Compliance | Compliance Details | |
---|---|---|---|---|---|
1. |
|
| None. | Test Report from Test Suite | Test Suite:
VSX 4.6.2, VSX 5.2.5, VSU 5.2.5, VSART 1.1.4, VSRT 5.3.2, VSTH 5.4.2 Test Report: vsx_sol10_x86-32 |
2. |
|
| None. | Test Report from Test Suite | Test Suite:
VSX4.6.2 VSX5.2.5 VSU5.2.5 VSART1.1.4beta VSRT5.3.2 VSTH5.4.2 Test Report: vsx_sol10_sparc-32 |
3. |
|
| None. | Test Report from Test Suite | Test Suite:
VSX4.6.2 VSX5.2.5 VSU5.2.5 VSART1.1.4beta VSRT5.3.2 VSTH5.4.2 Test Report: vsx_sol10_sparc-64 |
Question 1: Which of the following XSI Option Groups are supported by the implementation?
Response
Encryption | Yes |
Realtime | Yes |
Advanced Realtime | Yes |
Realtime Threads | Yes |
Advanced Realtime Threads | No |
Tracing | No |
XSI STREAMS | Yes |
Legacy | Yes |
Support for an XSI Option Group can only be claimed if all interfaces in that group behave according to the relevant descriptions in System Interfaces, Issue 6.
If an implementation does not support an Option Group then the system need not support the functions or functional behavior.
Question 2: Which of the following options are supported by the implementation?
Response
IEC 60559 Floating-Point option | Yes |
IPV6 | Yes |
Raw Sockets | Yes |
Support for these options enables additional semantics for interfaces as described in the relevant descriptions in System Interfaces, Issue 6.
Question 3: For each of the symbolic constants, specified in the <unistd.h> header file, are the associated features always available on the system?
Response
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 |
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. |
|
FLT_MANT_DIG | Number of base-FLT_RADIX digits in the float significand. |
|
DBL_MANT_DIG | Number of base-FLT_RADIX digits in the double significand. |
|
LDBL_MANT_DIG | Number of base-FLT_RADIX digits in the long double significand. |
|
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. |
|
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. |
|
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. |
|
FLT_MIN_EXP | Minimum negative integer such that FLT_RADIX raised to that power minus 1 is a normalised float. |
|
DBL_MIN_EXP | Minimum negative integer such that FLT_RADIX raised to that power minus 1 is a normalised double. |
|
LDBL_MIN_EXP | Minimum negative integer such that FLT_RADIX raised to that power minus 1 is a normalised long double. |
|
FLT_MIN_10_EXP | Minimum negative integer such that 10 raised to that power is in the range of normalised floats. |
|
DBL_MIN_10_EXP | Minimum negative integer such that 10 raised to that power is in the range of normalised doubles. |
|
LDBL_MIN_10_EXP | Minimum negative integer such that 10 raised to that power is in the range of normalised long doubles. |
|
FLT_MAX_EXP | Maximum integer such that FLT_RADIX raised to that power minus 1 is a representable finite float. |
|
DBL_MAX_EXP | Maximum integer such that FLT_RADIX raised to that power minus 1 is a representable finite double. |
|
LDBL_MAX_EXP | Maximum integer such that FLT_RADIX raised to that power minus 1 is a representable finite long double. |
|
FLT_MAX_10_EXP | Maximum integer such that 10 raised to that power is in the range of representable finite floats. |
|
DBL_MAX_10_EXP | Maximum integer such that 10 raised to that power is in the range of representable finite doubles. |
|
LDBL_MAX_10_EXP | Maximum integer such that 10 raised to that power is in the range of representable finite long doubles. |
|
FLT_MAX | Maximum representable finite float. |
|
DBL_MAX | Maximum representable finite double. |
|
LDBL_MAX | Maximum representable finite long double. |
|
FLT_EPSILON | Difference between 1.0 and the least value greater than 1.0 that is representable as a float. |
|
DBL_EPSILON | Difference between 1.0 and the least value greater than 1.0 that is representable as a double. |
|
LDBL_EPSILON | Difference between 1.0 and the least value greater than 1.0 that is representable as a long double. |
|
FLT_MIN | Minimum normalised positive float. |
|
DBL_MIN | Minimum normalised positive double. |
|
LDBL_MIN | Minimum normalised positive long double. |
|
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 | Maximum length of argument to the exec functions including the environment data. | 4096 | See Appendix |
ATEXIT_MAX | Maximum number of functions that may be registered with atexit(). | 32 | Unlimited |
CHILD_MAX | Maximum number of processes per user ID. | 25 | Value dependent on how the system kernel is configured |
FILESIZEBITS | Minimum number of bits needed to represent as a signed integer value the maximum size of a regular file. | 32 | 41 |
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 | 16 |
LINK_MAX | Maximum number of links to a single file. | 8 | 32767 |
LOGIN_NAME_MAX | Maximum length of a login name. | 9 | 9 |
MAX_CANON | Maximum number of bytes in a terminal canonical input line. | 255 | 256 |
MAX_INPUT | Maximum number of bytes for which space will be available in a terminal input queue. | 255 | 512 |
NAME_MAX | Maximum number of bytes in a filename (not including terminating null). | 14 | The maximum value for NAME_MAX varies depending on the file system type, but always provides at least the minimum requirement. The most common value is 255. Values for a specific path are available using pathconf() |
OPEN_MAX | Maximum number of open files that one process can have open at any one time. | 20 | 256 |
PAGESIZE | Size of a page in bytes. | 1 | Variable |
PAGE_SIZE | Same as PAGESIZE. If either PAGESIZE or PAGE_SIZE is defined, the other will be defined with the same value. | 1 | Variable |
PATH_MAX | Maximum number of bytes in a pathname (including the terminating null). | 255 | The maximum value for PATH_MAX varies depending on the file system type, but always provides at least the minimum requirement. The most common value is 1024. Values for a specific path are available using pathconf(). |
PIPE_BUF | Maximum number of bytes that is guaranteed to be atomic when writing to a pipe. | 512 | 5120 |
PTHREAD_DESTRUCTOR_ITERATIONS | Maximum number of attempts made to destroy a thread's thread-specific data values on thread exit. | 4 | Variable |
PTHREAD_KEYS_MAX | Maximum number of data keys that can be created by a process. | 128 | Variable |
PTHREAD_STACK_MIN | Minimum size in bytes of thread stack storage. | 0 | Variable |
PTHREAD_THREADS_MAX | Maximum number of threads that can be created by a process. | 64 | Variable |
STREAM_MAX | Number of streams that one process can have open at one time. | 8 | 256 |
SYMLINK_MAX | Number of bytes in a symbolic link. | 255 | 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 | 20 |
TTY_NAME_MAX | Maximum length of terminal device name. | 9 | 128 |
TZNAME_MAX | Maximum number of bytes supported for the name of a time zone. | 6 | 6 |
Question 6: What are the values associated with the following constants specified in the <limits.h> header file?
Response
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
14
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
10
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
16
RE_DUP_MAX
Maximum number of repeated occurrences of a regular expression
permitted when using interval notation.
255
255
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. |
|
INT_MAX | Maximum value of an int. |
|
LONG_BIT | Number of bits in a long int. |
|
LONG_MAX | Maximum value of a long int. |
|
LLONG_MAX | Maximum value of a long long. |
|
MB_LEN_MAX | Maximum number of bytes in a character, for any supported locale. |
|
SHRT_MAX | Maximum value of a short. |
|
SSIZE_MAX | Maximum value of an object of type ssize_t. |
|
UINT_MAX | Maximum value of an unsigned int. |
|
ULONG_MAX | Maximum value of an unsigned long int. |
|
ULLONG_MAX | Maximum value of a unsigned long long. |
|
USHRT_MAX | Maximum value of an unsigned short int. |
|
WORD_BIT | Number of bits in a word or int. |
|
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. |
|
FOPEN_MAX | Number of streams which the implementation guarantees can be open simultaneously. |
|
L_ctermid | Maximum size of character array to hold ctermid() output. |
|
L_tmpnam | Maximum size of character array to hold tmpnam() output. |
|
TMP_MAX | Minimum number of unique filenames generated by tmpnam(), which is the maximum number of times an application can call tmpnam() reliably. |
|
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 | No |
ENOMEM | Yes | |
EPROTO | Yes | |
access() | EINVAL | Yes |
ENAMETOOLONG | Yes | |
ETXTBSY | No | |
asin() * | Range Error | No |
asinh() * | Range Error | No |
atan() * | Range Error | No |
atanh() * | Range Error | No |
atan2() * | Range Error | No |
bind() | EACCESS | Yes |
EINVAL | Yes | |
EISCONN | Yes | |
ELOOP | Yes | |
ENAMETOOLONG | Yes | |
ENOBUFS | Yes | |
catclose() | EBADF | Yes |
EINTR | Yes | |
catgets() | EBADF | Yes |
EBADMSG | Yes | |
EINTR | Yes | |
EINVAL | No | |
ENOMSG | Yes | |
catopen() | EACCES | Yes |
EMFILE | Yes | |
ENAMETOOLONG | Yes | |
ENFILE | Yes | |
ENOENT | Yes | |
ENOMEM | Yes | |
ENOTDIR | Yes | |
cfsetispeed() | EINVAL | No |
cfsetospeed() | EINVAL | No |
chdir() | ENAMETOOLONG | Yes |
ELOOP | Yes | |
chmod() | EINTR | No |
EINVAL | Yes | |
ELOOP | Yes | |
ENAMETOOLONG | Yes | |
chown() | EINTR | Yes |
EINVAL | Yes | |
EIO | Yes | |
ELOOP | Yes | |
ENAMETOOLONG | Yes | |
close() | EIO | Yes |
closedir() | EBADF | Yes |
EINTR | No | |
connect() | EACCESS | Yes |
EADDRINUSE | Yes | |
ECONNRESET | Yes | |
EHOSTUNREACH | Yes | |
EINVAL | Yes | |
ELOOP | Yes | |
ENAMETOOLONG | Yes | |
ENETDOWN | Yes | |
ENOBUFS | Yes | |
EOPNOTSUP | Yes | |
endpwent() | EIO | Yes |
erf() * | Range Error | No |
erfc() * | Range Error | No |
exec | ELOOP | Yes |
ENAMETOOLONG | Yes | |
ENOMEM | No | |
ETXTBSY | No | |
exp() * | Range Error | No |
exp2() * | Range Error | No |
expm1() * | Range Error | No |
fchdir() | EINTR | Yes |
EIO | Yes | |
fchmod() | EINTR | Yes |
EINVAL | Yes | |
fchown() | EINVAL | Yes |
EIO | Yes | |
EINTR | Yes | |
fclose() | ENXIO | Yes |
fcntl() | EDEADLK | Yes |
fdim() * | Range Error | Yes |
fdopen() | EBADF | No |
EINVAL | No | |
EMFILE | Yes | |
ENOMEM | Yes | |
fflush() | ENXIO | Yes |
fgetc() | ENOMEM | Yes |
ENXIO | Yes | |
fgetpos() | EBADF | Yes |
ESPIPE | Yes | |
fgetwc() | ENOMEM | Yes |
ENXIO | Yes | |
fileno() | EBADF | No |
fma() * | Domain Error | Yes |
Range Error | No | |
fmod() * | Range Error | No |
fopen() | EINVAL | Yes |
ELOOP | Yes | |
EMFILE | Yes | |
ENAMETOOLONG | Yes | |
ENOMEN | Yes | |
ETXTBSY | No | |
fork() | ENOMEM | Yes |
fpathconf() | EBADF | Yes |
EINVAL | Yes | |
fprintf() | EINVAL | Yes |
EILSEQ | Yes | |
ENOMEM | Yes | |
fputc() | ENOMEM | Yes |
ENXIO | Yes | |
fputwc() | ENOMEM | Yes |
ENXIO | Yes | |
fread() | ENOMEM | No |
ENXIO | No | |
freopen() | EINVAL | Yes |
ELOOP | Yes | |
ENAMETOOLONG | Yes | |
ENOMEM | Yes | |
ENXIO | Yes | |
ETXTBSY | No | |
fscanf() | EILSEQ | Yes |
EINVAL | Yes | |
ENOMEM | Yes | |
ENXIO | Yes | |
fstat() | EOVERFLOW | Yes |
ftell() | ESPIPE | Yes |
ftok() | ELOOP | Yes |
ENAMETOOLONG | Yes | |
ftw() | EINVAL | Yes |
ELOOP | Yes | |
ENAMETOOLONG | Yes | |
fwide() | EBADF | Yes |
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 | Yes | |
EMFILE | Yes | |
ENFILE | Yes | |
getgrgid() | EIO | Yes |
EINTR | No | |
EMFILE | Yes | |
ENFILE | Yes | |
getgrgid_r() | ERANGE | Yes |
getgrnam() | EIO | Yes |
EINTR | No | |
EMFILE | Yes | |
ENFILE | Yes | |
getgrnam_r() | ERANGE | Yes |
getitimer() | EINVAL | Yes |
getlogin() | EMFILE | Yes |
ENFILE | Yes | |
ENXIO | Yes | |
getlogin_r() | ERANGE | Yes |
getpeername() | ENOBUFS | Yes |
getpgid() | EINVAL | Yes |
getpwent() | EIO | Yes |
EMFILE | Yes | |
ENFILE | Yes | |
getpwnam() | EIO | Yes |
EINTR | No | |
EMFILE | Yes | |
ENFILE | Yes | |
getpwnam_r() | ERANGE | Yes |
getpwuid() | EIO | Yes |
EINTR | No | |
EMFILE | Yes | |
ENFILE | Yes | |
getpwuid_r() | ERANGE | Yes |
getsockname() | EINVAL | Yes |
ENOBUFS | Yes | |
getsockopt() | EACCESS | Yes |
EINVAL | Yes | |
ENOBUFS | Yes | |
grantpt() | EBADF | Yes |
EINVAL | Yes | |
EACCES | Yes | |
hcreate() | ENOMEM | Yes |
hsearch() | ENOMEM | Yes |
hypot() * | Range Error | No |
iconv() | EBADF | Yes |
iconv_close() | EBADF | Yes |
iconv_open() | EMFILE | Yes |
ENFILE | Yes | |
ENOMEM | Yes | |
EINVAL | Yes | |
if_nameindex() | ENOBUFS | No |
isatty() | EBADF | No |
ENOTTY | No | |
j0() | Range Error | No |
j1() | Range Error | No |
jn() | Range Error | No |
lchown() | EIO | Yes |
EINTR | Yes | |
ELOOP | Yes | |
ENAMETOOLONG | Yes | |
ldexp() * | Range Error | No |
link() | ELOOP | Yes |
ENAMETOOLONG | Yes | |
listen() | EACCESS | No |
EINVAL | Yes | |
ENOBUFS | Yes | |
lockf() | EAGAIN | Yes |
EDEADLK | Yes | |
EINVAL | Yes | |
ENOLCK | Yes | |
EOPNOTSUPP | Yes | |
log1p() * | Range Error | No |
lstat() | ELOOP | Yes |
ENAMETOOLONG | Yes | |
EOVERFLOW | Yes | |
mblen() | EILSEQ | Yes |
mbrlen() | EINVAL | No |
EILSEQ | Yes | |
mbrtowc() | EINVAL | No |
EILSEQ | Yes | |
mbsrtowcs() | EINVAL | No |
EILSEQ | Yes | |
mbstowcs() | EILSEQ | Yes |
mbtowc() | EILSEQ | Yes |
mkdir() | ELOOP | Yes |
ENAMETOOLONG | Yes | |
mkfifo() | ELOOP | Yes |
ENAMETOOLONG | Yes | |
mknod() | ELOOP | Yes |
ENAMETOOLONG | No | |
nftw() | ELOOP | Yes |
EMFILE | Yes | |
ENAMETOOLONG | Yes | |
ENFILE | Yes | |
open() | EAGAIN | Yes |
EINVAL | No | |
ELOOP | Yes | |
ENAMETOOLONG | Yes | |
ENOMEM | Yes | |
ETXTBSY | No | |
opendir() | ELOOP | Yes |
EMFILE | Yes | |
ENAMETOOLONG | Yes | |
ENFILE | Yes | |
pathconf() | EACCES | Yes |
EINVAL | Yes | |
ELOOP | Yes | |
ENAMETOOLONG | Yes | |
ENOENT | Yes | |
ENOTDIR | Yes | |
popen() | EMFILE | Yes |
EINVAL | No | |
posix_openpt() | EINVAL | Yes |
EAGAIN | Yes | |
pow() * | Range Error | No |
pread() | ENXIO | Yes |
printf() | ENOMEM | Yes |
pthread_attr_setstack() | EACCESS | No |
EINVAL | Yes | |
pthread_cancel() | ESRCH | Yes |
pthread_cond_broadcast() | EINVAL | No |
pthread_cond_destroy() | EBUSY | No |
EINVAL | No | |
pthread_cond_init() | EBUSY | No |
EINVAL | Yes | |
pthread_cond_signal() | EINVAL | No |
pthread_cond_timedwait() | EINVAL | Yes |
pthread_cond_wait() | EINVAL | No |
pthread_condattr_destroy() | EINVAL | Yes |
pthread_condattr_setpshared() | EINVAL | Yes |
pthread_join() | EDEADLK | Yes |
pthread_key_delete() | EINVAL | Yes |
pthread_mutex_destroy() | EBUSY | No |
EINVAL | No | |
pthread_mutex_init() | EBUSY | No |
EINVAL | No | |
pthread_mutex_lock() | EINVAL | Yes |
EAGAIN | Yes | |
EDEADLK | Yes | |
pthread_mutex_trylock() | EINVAL | Yes |
EAGAIN | Yes | |
pthread_mutex_unlock() | EINVAL | Yes |
EAGAIN | Yes | |
EPERM | Yes | |
pthread_mutexattr_destroy() | EINVAL | Yes |
pthread_mutexattr_gettype() | EINVAL | Yes |
pthread_mutexattr_init() | ENOMEM | Yes |
pthread_mutexattr_setpshared() | EINVAL | Yes |
pthread_mutexattr_settype() | EINVAL | Yes |
pthread_once() | EINVAL | Yes |
pthread_rwlock_destroy() | EBUSY | No |
EINVAL | No | |
pthread_rwlock_init() | EBUSY | No |
EINVAL | No | |
pthread_rwlock_rdlock() | EINVAL | No |
EDEADLK | No | |
EAGAIN | No | |
pthread_rwlock_tryrdlock() | EINVAL | No |
EAGAIN | No | |
pthread_rwlock_trywrlock() | EINVAL | No |
pthread_rwlock_unlock() | EINVAL | No |
EPERM | No | |
pthread_rwlock_wrlock() | EINVAL | No |
EDEADLK | No | |
pthread_rwlockattr_destroy() | EINVAL | Yes |
pthread_rwlockattr_setpshared() | EINVAL | Yes |
pthread_setcancelstate() | EINVAL | Yes |
pthread_setcanceltype() | EINVAL | Yes |
pthread_setspecific() | EINVAL | Yes |
putc() | ENOMEM | Yes |
ENXIO | Yes | |
putchar() | ENOMEM | Yes |
ENXIO | Yes | |
putenv() | ENOMEM | Yes |
puts() | ENOMEM | No |
ENXIO | No | |
pututxline() | EPERM | Yes |
putwc() | ENOMEM | Yes |
ENXIO | Yes | |
EILSEQ | Yes | |
putwchar() | ENOMEM | Yes |
ENXIO | Yes | |
EILSEQ | Yes | |
pwrite() | EINVAL | Yes |
ENXIO | Yes | |
read() | EIO | Yes |
ENOBUFS | No | |
ENOMEM | No | |
ENXIO | Yes | |
readdir() | EBADF | Yes |
ENOENT | Yes | |
readdir_r() | EBADF | Yes |
readlink() | EACCES | Yes |
ELOOP | Yes | |
ENAMETOOLONG | Yes | |
readv() | EINVAL | Yes |
realpath() | ELOOP | Yes |
ENAMETOOLONG | Yes | |
ENOMEM | Yes | |
recv() | EIO | Yes |
ENOBUFS | Yes | |
ENOMEM | Yes | |
recvfrom() | EIO | Yes |
ENOBUFS | Yes | |
ENOMEM | Yes | |
recvmsg() | EIO | Yes |
ENOBUFS | Yes | |
ENOMEM | Yes | |
remove() | EBUSY | Yes |
ELOOP | Yes | |
ENAMETOOLONG | Yes | |
ETXTBSY | No | |
rename() | EBUSY | Yes |
ELOOP | Yes | |
ENAMETOOLONG | Yes | |
ETXTBSY | No | |
rmdir() | ELOOP | Yes |
ENAMETOOLONG | Yes | |
round() * | Range Error | No |
scalb() * | Range Error | No |
send() | EACCESS | No |
EIO | Yes | |
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 | Yes |
EMFILE | Yes | |
ENFILE | Yes | |
setrlimit() | EINVAL | Yes |
setsockopt() | ENOMEM | Yes |
ENOBUFS | Yes | |
setvbuf() | EBADF | No |
shmctl() | EOVERFLOW | Yes |
shutdown() | ENOBUFS | Yes |
sigaction() | EINVAL | Yes |
sigaddset() | EINVAL | Yes |
sigdelset() | EINVAL | Yes |
sigismember() | EINVAL | Yes |
signal() | EINVAL | Yes |
sigwait() | EINVAL | Yes |
sin() * | Range Error | No |
sinh() * | Range Error | No |
socket() | EACCESS | Yes |
ENOBUFS | Yes | |
ENOMEM | Yes | |
socketpair() | EACCESS | Yes |
ENOBUFS | Yes | |
ENOMEM | Yes | |
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 | No |
strtoimax() | EINVAL | Yes |
strtol() | EINVAL | Yes |
strtoumax() | EINVAL | Yes |
strtoul() | EINVAL | Yes |
strxfrm() | EINVAL | No |
swprintf() | EILSEQ | Yes |
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 | Yes | |
towctrans() | EINVAL | No |
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 | No | |
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 | Yes | |
vfwprintf() | ENOMEM | Yes |
ENXIO | Yes | |
EILSEQ | Yes | |
EINVAL | Yes | |
vfwscanf() | ENOMEM | Yes |
ENXIO | Yes | |
EILSEQ | Yes | |
EINVAL | Yes | |
wcrtomb() | EINVAL | No |
EILSEQ | Yes | |
wcscoll() | EINVAL | Yes |
wcsrtombs() | EINVAL | No |
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 | No |
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 | No |
Range Error | No | |
y1() | Domain Error | No |
Range Error | No | |
yn() | Domain Error | No |
Range Error | No |
Question 10: What format of floating-point numbers is supported by this implementation?
Response
Question 11: Which floating-point exceptions are supported by this implementation for the fegetexecptflag(), feraiseexcept(), fesetexecptflag(), and fetestexecptflag() functions?
Response
Question 12: Which floating-point rounding directions are supported by this implementation for the fegetround(), and fesetround() functions?
Response
Question 13: Is a non-stop floating-point exception mode supported by this implementation?
Response
Yes
Question 14: Are the optional data encryption interfaces provided?
Response
Function | Provided |
---|---|
crypt() | Yes |
encrypt() | Yes |
setkey() | Yes |
Export Restrictions:
Question 15: Which file types (regular, directory, FIFO, special and so on) are considered to be executable?
Response
Question 16: What file access control mechanisms does the implementation provide?
Response
Question 17: Are any additional or alternate file access control mechanisms implemented that could cause fstat() or stat() to fail?
Response
Yes
Question 18: What coded character sets are supported by the implementation?
Response
Solaris supports at least the following coded character sets:
Coded Character Set | Locale |
ASCII | C POSIX |
Japanese EUC (JIS X0201-1976, JIS X0208-1983, JIS X0212-1990) | ja_JP.eucJP |
PCK | ja_JP.PCK |
BIG5 | zh_TW.BIG5 |
Traditional Chinese EUC (CNS 11643) | zh_TW.EUC |
Korean EUC (KS C 5636, KS C 5601-1987) | ko_KR.EUC |
Simplified Chinese EUC (GB 1988-80, GB 2312-80 | zh_CN.EUC |
GB18030 | zh_CN.GB18030 |
GBK | zh_CN.GBK |
ISO 8859-1 | ca_ES da_DK de_AT de_CH de_DE en_AU en_CA en_GB en_IE en_NZ en_US es_AR es_BO es_CL es_CO es_CR es_EC es_ES es_GT es_MX es_N! es_PA es_PA es_PY es_SV es_UY es_VE fi_FI fr_BE fr_CA fr_CH fr_FR is_IS it_IT nl_BE nl_NL no_NO no_NY pt_BR pt_PT sv_SE |
ISO 8859-2 |
cs_CZ hr_HR hu_HU pl_PL ro_RO sh_BA sk_SK sl_SI sq_AL |
ISO 8859-5 | bg_BG mk_MK ru_RU sr_SP sr_YU |
ISO 8859-6 | ar |
ISO 8859-7 | el_GR |
ISO 8859-8 | he_IL |
ISO 8859-9 | tr_TR |
ISO 8859-13 | lt_LT lv_LV |
ISO 8859-15 | ca_ES.ISO8859-15 da_DK.ISO8859-15 de_AT.ISO8859-15 de_DE.ISO8859-15 en_GB.ISO8859-15 en_IE.ISO8859-15 en_US.ISO8859-15 es_ES.ISO8859-15 et_EE.ISO8859-15 fi_FI.ISO8859-15 fr_BE.ISO8859-15 fr_FR.ISO8859-15 it_IT.ISO8859-15 nl_BE.ISO8859-15 nl_NL.ISO8859-15 pt_PT.ISO8859-15 sv_SE.ISO8859-15 |
KOI8-R | ru_RU.KOI8-R |
ANSI-1251 | ru_RU.ANSI1251 |
TIS620.2533 | th_TH |
UTF-8 |
ar_EG.UTF-8 ar_SA.UTF-8 de_DE.UTF-8 en_US.UTF-8 es_ES.UTF-8 fi_FI.UTF-8 fr_BE.UTF-8 fr_FR.UTF-8 he_IL.UTF-8 hi_IN.UTF-8 it_IT.UTF-8 ja_JP.UTF-8 ko_KR.UTF-8 pl_PL.UTF-8 pt_BR.UTF-8 ru_RU.UTF-8 sv_SE.UTF-8 th_TH.UTF-8 tr_TR.UTF-8 zh_CN.UTF-8 zh_HK.UTF-8 zh_TW.UTF-8 |
Question 19: What is the implementation's underlying internal codeset?
Response
Question 20: Does closing the master side of a pseudo-terminal flush all queued input and output?
Response
Yes
Question 21: Does closing the slave side of a pseudo-terminal cause a zero-length message to be sent to the master?
Response
Yes
Question 22: What naming conventions are associated with the master side of pseudo-terminal devices?
Response
Question 23: What types of file can be polled?
Response
Question 24: What is the direction of stack growth?
Response
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 |
Question 26: Does the setpgrp() function create a new session?
Response
Yes
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 |
Question 28: What is the limit the implementation places on the length of a socket's listen queue?
Response
None
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 | Yes |
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 |
Question 30: What socket types does the implementation support?
Response
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() | No |
dbm_delete() | No |
dbm_fetch() | No |
dbm_nextkey() | No |
dbm_open() | No |
dbm_store() | No |
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() | No |
fgetpos() | No |
fgets() | No |
fgetwc() | No |
fgetws() | No |
fopen() | No |
fprintf() | No |
fputc() | No |
fputs() | No |
fputwc() | No |
fputws() | No |
fread() | No |
freopen() | No |
fscanf() | No |
fseek() | No |
fseeko() | No |
fsetpos() | No |
ftell() | No |
ftello() | No |
ftw() | No |
fwprintf() | No |
fwrite() | No |
fwscanf() | No |
getc() | No |
getc_unlocked() | No |
getchar() | No |
getchar_unlocked() | No |
getcwd() | No |
getdate() | No |
getgrent() | No |
getgrgid() | No |
getgrgid_r() | No |
getgrnam() | No |
getgrnam_r() | No |
gethostbyaddr() | No |
gethostbyname() | No |
gethostent() | No |
gethostname() | No |
getlogin() | No |
getlogin_r() | No |
getnetbyaddr() | No |
getnetbyname() | No |
getnetent() | No |
getprotobyname() | No |
getprotobynumber() | No |
getprotoent() | No |
getpwent() | No |
getpwnam() | No |
getpwnam_r() | No |
getpwuid() | No |
getpwuid_r() | No |
gets() | No |
getservbyname() | No |
getservbyport() | No |
getservent() | No |
getutxent() | No |
getutxid() | No |
getutxline() | No |
getwc() | No |
getwchar() | No |
getwd() | No |
glob() | No |
iconv_close() | No |
iconv_open() | No |
ioctl() | No |
lseek() | No |
mkstemp() | No |
nftw() | No |
opendir() | No |
openlog() | No |
pclose() | No |
perror() | No |
popen() | No |
printf() | No |
pthread_rwlock_rdlock() | No |
pthread_rwlock_wrlock() | No |
putc() | No |
putc_unlocked() | No |
putchar() | No |
putchar_unlocked() | No |
puts() | No |
pututxline() | No |
putwc() | No |
putwchar() | No |
readdir() | No |
readdir_r() | No |
remove() | No |
rename() | No |
rewind() | No |
rewinddir() | No |
scanf() | No |
seekdir() | No |
semop() | No |
setgrent() | No |
sethostent() | No |
setnetent() | No |
setprotoent() | No |
setpwent() | No |
setutxent() | No |
strerror() | No |
syslog() | No |
tmpfile() | No |
tmpnam() | No |
ttyname() | No |
ttyname_r() | No |
ungetc() | No |
ungetwc() | No |
unlink() | No |
vfprintf() | No |
vfwprintf() | No |
vprintf() | No |
vwprintf() | No |
wprintf() | No |
wscanf() | No |
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. | Yes |
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. | Yes |
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. | Yes |
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. | Yes |
The implementation provides an execution environment with 32-bit int, long and pointer types and an off_t type using at least 64 bits. | Yes |
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. | Yes |
Question 34: Does the implementation support _POSIX_PRIORITIZED_IO?
Response
The system does not support _POSIX_PRIORITIZED_IO.
Question 35: If the Realtime Option Group is supported, what asynchronous I/O operations are cancelable with aio_cancel()?
Response
Question 36: If the Realtime Threads Option Group is supported, what scheduling policy is associated with SCHED_OTHER?
Response
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
Both PTHREAD_SCOPE_PROCESS and PTHREAD_SCOPE_SYSTEM.
Question 38: If the Realtime Threads Option Group is supported, what is the default scheduling contention scope when a process is created?
Response
PTHREAD_SCOPE_PROCESS.
To reproduce the test environment on Solaris 10:
For information on installing Solaris 10, see Installation Instructions for Solaris 10.
# /usr/sbin/eeprom ttya-ignore-cd=false
# /usr/sbin/eeprom ttyb-ignore-cd=false
# echo "port-a-ignore-cd=0;" >> se.conf
# echo "port-b-ignore-cd=0;" >> se.conf
# sed s/#TZ/TZ/ < /tmp/foo > /tmp/bar
# sed s/##/#/ < /tmp/bar > /etc/default/init
# sed '/^tty[ab]/s/:y:# $/:n:# /p' /etc/saf/zsmon/_pmtab > /tmp/zsfile
# cat /tmp/zsfile > /etc/saf/zsmon/_pmtab
Note: Colons (:) act as field separators in the _pmtab file.
# echo "ttya-ignore-cd=\"F\"" >> /kernel/drv/asy.conf
# echo "ttyb-ignore-cd=\"F\"" >> /kernel/drv/asy.conf
group: files nis
passwd: files nis
- create with minfree set to 0
- mount and chmod u+rwx
Numeric Values
Question 4 (1.1.4 Float, Stdio and Limit Values)
LDBL_DIG on SPARC-based systems: 33 LDBL_DIG on X86-based systems: 18
LDBL_MAX on SPARC-based systems: 1.189731495357231765085759326628007016E+4932L LDBL_MAX on X86-based systems: 1.1897314953572317650213E+4932L
LDBL_EPSILON on SPARC-based systems: 1.925929944387235853055977942584927319E-34L LDBL_EPSILON on X86-based systems: 1.0842021724855044340075E-19L
LDBL_MIN on SPARC-based systems: 3.3621031431120935062626778173217522603E-4932L LDBL_MIN on X86-based systems: 3.3621031431120935062627E-4932L
Question 5 (1.1.4 Float, Stdio, and Limit Values)
Question 7 (1.1.4 Float, Stdio, and Limit Values)
LONG_MAX for 32-bit programs: 2147483647L LONG_MAX for 64-bit programs: 9223372036854775807L
SSIZE_MAX for 32-bit programs: 2147483647L SSIZE_MAX for 64-bit programs: 9223372036854775807L
ULONG_MAX for 32-bit programs: 4294967295UL ULONG_MAX for 64-bit programs: 18446744073709551615UL
Files and Directories
Question 17 (1.3.2 Files and Directories)
If the source file has an associated access control mechanism, the access control mechanism will be copied to the destination file. If the ACL cannot be associated with the destination file, the copy will fail.
Stack Growth Direction
Question 24 (1.7 Stack Growth Direction)
The Solaris sigaltstack() behaves in accordance with the example in the APPLICATION USAGE section of the sigaltstack() entry. The system will set the stack pointer appropriately provided that the ss_sp member of the stack_t structure passed to sigaltstack() is the base address (low memory) of the allocated memory block, regardless of the direction of stack growth.
Threads
Question 31 (1.12.1 Cancellation Points)
Of the list provided, fcntl() has a cancellation point for the case when the cmd argument is F_SETLKW.
C-language Compilation Environment
Question 32 (1.13 C-language Compilation Environment)
Question 33 (1.13 C-language Compilation Environment)
Copyright © 2004 Sun Microsystems, Inc.
All rights reserved.
Date | Name | Comment |
---|---|---|
18-Oct-2004 | Kristin Amundsen | UNIX03 Submission for Solaris 10 |
03-Sep-2004 | Kristin Amundsen | Document creation. |
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.