|
| 以 PDF 格式下载本书
X/Open and XPG4
5
- This chapter discusses the compliance of Solaris 2.4 to the programming interface specifications contained in the X/Open Portability Guide Issue 4, (XPG4).
The X/Open Portability Guide, Issue 4
- In 1992, X/Open published the X/Open Portability Guide, Issue 4. XPG4 retains compliance to the POSIX.1-1988 standard but is extended to the ISO/IEC updated POSIX.1 standard and the ISO/IEC C language standard. The X/Open Portability Guide Issue 3 remains available and system and components can still be branded to XPG3, but XPG4 branding offers significant additional capability.
- This chapter identifies Solaris 2.4 as a conforming implementation of XPG4, and displays the XPG4 Base brand trademark. It also presents the X/Open Conformance Statement, which documents Solaris' compliance to the programming interface specifications of the X/Open Portability Guide, Issue 4.
The X/Open Brand Trademark
- X/Open provides a verification and branding program that developers can use to show that their products are X/Open compliant. Sun Microsystems has been a strong supporter of the X/Open branding process since its inception.
- Figure 5-1 The XPG4 Base Brand Logo
-

- Because it is a comforming implementation of XPG3 and meets the requirements of the System Interfaces and Headers component of XPG4, Solaris has earned the XPG4 BASE brand. Solaris products and software products from independent software vendors that have received XPG4 branding are described below:
-
-
Window Management (OpenWindows)--The Solaris window system, which supports the OPEN LOOK Graphical User Interface, has earned the XPG4 brand by implementing the programmer's interface to the X Window System. OpenWindows supports the Window Management component of the X/Open BASE level.
-
Commands and Utilities--X/Open's specification of standard interfaces for utilities allows for portable shell scripts. Solaris meets the Commands and Utilities component requirements of the BASE system.
-
ProCompiler(TM) C 2.0.1-- The ProCompiler for Solaris for x86 is fully conformant with the ANSI/ISO Standard for C. It has passed X/Open verification test suite VSX3 and meets the C Language component requirements of the BASE level.
-
SPARCompiler C 2.0.1--The SPARCompiler for the C programming language based on Common Usage C has passed X/Open verification test suite VSX4.2.4 and meets the C Language component requirements of the BASE level.
-
Sun FORTRAN 3.0--Sun's compiler for the FORTRAN programming language is fully compliant with the definition in the American National Standards Institute (ANSI) document.
-
Sun Pascal 3.0.1--Sun's compiler for the Pascal programming language is fully compliant with the ISO standard.
-
-
Magnetic Media (Source Code Transfer)--Sun conforms to X/Open's specifications for transferring source code between machines with compatible media and facilitating the transfer of source code in machine-readable form. Solaris supports the Source Code Transfer component of the X/Open BASE level.
-
Inter-Process Communication--Sun supports X/Open's specifications for interfaces providing message queue, semaphore and shared memory facilities for communication and synchronization between processes. The SunOS operating system fulfills the requirements of the Inter-Process Communications component of the X/Open BASE level.
-
Terminal Interfaces (XSI Curses Interface)--The XSI Curses Interface meets X/Open's specifications for providing a generic terminal interface that is independent of terminal hardware or connection methods for updating screens on character-oriented and block-oriented terminals. Solaris systems fulfill the requirements of the Terminal Interfaces component of the X/Open BASE level.
The X/Open Conformance Statement for Solaris
- The remaining pages of this chapter feature the X/Open Conformance Statement for Solaris.
X/Open Conformance Statement
- X/OPEN Conformance Statement Questionnaire
Section 1: INTERNATIONALIZED SYSTEM CALLS AND
-
LIBRARIES
PRODUCT IDENTIFICATION
-
| Product Identification | Solaris |
| Version/Release No. | 2.4 |
- If you do not supply this component yourself, please identify below the supplier you reference.
INDICATOR OF COMPLIANCE
-
| VSX Test Suite Release | VSX 4.3.2 |
| Testing Agency Name | SunSoft, A Sun Microsystems, Inc. Business |
| Address | 2550 Garcia Avenue Mountain View CA 94043 |
ENVIRONMENT SPECIFICATION
- Enter below details of the hardware and software environment in which testing took place, including compilation routines and installation procedures (if any). Sufficient detail must be supplied to enable conformant behaviour and any test results to be reproduced.
- SPARC
- SPARC running Solaris 2.4. Installation procedures are provided in SPARC: Installing Solaris Software
- To reproduce the test environment, do these steps:
-
- Edit the /etc/saf/zsmon/_pmtab file to turn off the ttysoftcarrier detect:
Change the ttya and ttyb fields from :y: to :n:. (The colons (:) act as field separators).
- Verify that the ttymodes settings in the /kernel/drv/options.conf file are set to:
-
-
2502:1805:bd:8a3b:3:1c:7f:15:4:0:0:0:11:13:la:19:12:f:17:16
3. Disable ypbind to allow rebooting of the system:
a. cd /usr/lib/netsvc/yp
b. mv ypbind ypbind-
-
- Set the eeprom variables that affect the tty:
a. On the keyboard, hit STOP-A to display the prom prompt. b. At the prompt, execute the following steps:
-
-
setenv ttya-ignore-cd false
setenv ttyb-ignore-cd false
setenv ttya-rts-dtr-off false
setenv ttyb-rts-dtr-off false
-
- Reboot the system
-
Note - When installing Solaris, set the time zone by selecting a time zone format that conforms to the POSIX.1 format for TZ defined on Page 152 and Page 153 of the IEEE Std. 1003.1-1990.
-
Note - The following option must be added to any compiler line:
-
-
-D_XOPEN_VERSION=4
-
Note - The following must be added to any link/load line: /usr/ccs/lib/values_scpg4.0
- x86
- x86 running Solaris 2.4. Installation procedures are provided in x86: Installing Solaris Software.
- To reproduce the test environment, do these steps:
-
- Become root.
- Ensure the correct serial port links:
-
-
-
· # touch /reconfigure
-
- Set the correct serial port permissions:
-
-
· # chmod 666 /devices/eisa/asy*
-
- Turn off the ttysoftcarrier detect:
Using an editor such as vi, in the /etc/saf/zsmon/_pmtab file, change the next to last field for both the ttya entry and the ttyb entry from y to n (the colon (:) acts as the field separator):
-
-
· # vi /etc/saf/zsmon/_pmtab
-
- Reboot the system.
-
Note - When installing Solaris, set the time zone by selecting a time zone format that conforms to the POSIX.1 format for TZ defined on Page 152 and Page 153 of the IEEE Std. 1003.1-1990.
-
Note - The following option must be added to any compiler line:
-
-
-D_XOPEN_VERSION=4
-
Note - The following must be added to any link/load line: /usr/ccs/lib/values_scpg4.0
TEMPORARY WAIVERS
- List below references to any temporary waivers granted by X/Open in respect of minor errors in the product referenced above. This should include the X/Open reference and the waiver expiration date. The waivers as granted shall be made available with this document on request.
- There are no temporary waivers.
-
Section 1.1: GENERAL ATTRIBUTES
1.1.1 XPG4 FEATURE GROUPS
Question 1: Which of the following feature groups are supported by the implementation?
Answer: Solaris 2.4 supports the Shared Memory, Encryption and Enhanced Internationalization feature groups.
- Rationale
- System Interfaces and Headers, Issue 4 states that the system may provide one or more of the Feature Groups listed.
- Reference
- X/Open CAE Specification, System Interfaces and Headers, Issue 4, Section 1.2, Conformance and Section 1.3, Feature Groups.
1.1.2 POSIX.1 SUPPORTED FEATURES
Question 2: Which of the following options, specified in the <unistd.h> header file are available on the system?
Answer:
-
Macro Name............Meaning........Provided
-
-
_POSIX_CHOWN_RESTRICTED The use of chown()
- Yes
- is restricted
-
-
_POSIX_JOB_CONTROL Job Control option Yes
_POSIX_NO_TRUNC Long pathname
- Yes
-
-
components generate
an error
_POSIX_SAVED_IDS Effective user and group
- Yes
- IDs are saved
-
-
_POSIX_VDISABLE Terminal special
- Yes
- characters can be disabled
- Rationale
- For an X/Open conforming implementation, all of 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
- X/Open CAE Specfication, System Interfaces and Headers, Issue 4, Chapter 4, Headers, <unistd.h>.
1.1.3 FLOAT, STDIO AND LIMIT VALUES
Question 3: What are the values associated with the following constants specified in the <float.h> header file?
Answer:
-
| Macro Name | Meaning..............Value |
-
-
FLT_MANT_DIG Number of base-FLT_RADIX digits
- 24
- in the float significand.
-
-
DBL_MANT_DIG Number of base-FLT_RADIX digits
- 53
- in the double significand.
-
-
LDBL_MANT_DIG Number of base_FLT_RADIX digits
- 64
- in the long double significand.
-
FLT_DIG....Number of decimal digits, q, such that
- 6
-
-
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
- 15
-
-
any floating point number with q digits
can be rounded into a long double repre-
sentation and back again without change to
the q digits.
-
LDBL_DIG....Number of decimal digits, q, such that
- 18
-
-
any floating point number with q digits
can be rounded into a double representation
and back again without change to the
q digits.
FLT_MIN_EXP Minimum negative integer such that
- -125
- FLT_RADIX raised to that power minus 1 is a normalised float.
-
-
DBL_MIN_EXP Minimum negative integer such that
- -1024
- FLT_RADIX raised to that power minus 1 is a normalized double.
- (continued)
-
Macro Name..Meaning..............Value
-
-
LDBL_MIN_EXP Minimum negative integer such that
- -16381
-
-
FLT_RADIX raised to that power minus
1 is a normalized long double.
FLT_MIN_10_EXP Minimum negative integer such that 10
- -125
-
-
raised to that power is in the range of
normalized floats.
DBL_MIN_10_EXP Minimum negative integer such that 10
- -307
-
-
raised to that power is in the range of
normalized doubles.
-
LDBL_MIN_10_EXP Minimum negative integer such that 10 -4931
- raised to that power is in the range of normalized long doubles.
-
-
FLT_MAX_EXP Maximum integer such that FLT_RADIX 128
raised to that power minus 1 is a
representable finite float.
DBL_MAX_EXP Maximum integer such that FLT_RADIX
- 1024
-
-
raised to that power minus 1 is a
representable finite double.
LDBL_MAX_EXP Maximum integer such that FLT_RADIX
- 16384
-
-
raised to that power minus 1 is a
representable finite long double.
FLT_MAX_10_EXP Maximum integer such that 10 raised to
- 38
-
-
that power is in the range of
representable finite floats.
DBL_MAX_10_EXP Maximum integer such that 10 raised to
- 308
-
-
that power is in the range of
representable finite doubles.
-
LDBL_MAX_10_EXP Maximum integer such that 10 raised to 4932
- that power is in the range of representable finite long doubles.
-
FLT_MAX....Maximum representable finite float...3.402823466E+38F
-
-
DBL_MAX Maximum representable finite
- 1.7976931348623157E+308
- double.
- (continued)
-
Macro Name..Meaning..............Value
-
-
LDBL_MAX Maximum representable
- 1.189731495357231765085759326628007016E+4932L
- finite long double.
-
-
FLT_EPSILON Difference between 1.0 and the least
-
- 192092896E-07F
-
-
value greater than 1.0 that is
representable as a float.
DBL_EPSILON Difference between 1.0 and the least
- 2.2204460492503131E-16
-
-
value greater than 1.0 that is
representable as a double.
LDBL_EPSILON Difference between 1.0
- 1.925929944387235853055977942584927319E-34L
-
-
and the least value greater
than 1.0 that is
representable as a long double.
-
| FLT_MIN | Minimum normalized postive float...1.175494351E-38F |
| DBL_MIN | Minimum normalized positive double. 2.2250738585072014E-308 |
-
-
LDBL_MIN Minimum normalized
- 3.3621031431120935062626778173217522603E-4932L
- positive long double.
- Rationale
- This set of constants provides useful information regarding the underlying architecture of the implementation.
- Reference
- X/Open CAE Specification, System Interfaces and Headers, Issue 4, Chapter 4, Headers, <float.h>.
Question 4: What are the values associated with the following constants (optionally specified in the <limits.h> header file)?
Answer:
-
Macro Name..Meaning
-
Minimum Maximum
-
ARG_MAX....Max. length of argument to the
- 4096....1048320
-
exec functions and environment data.
-
-
CHILD_MAX Max. number of processes per 6 See note
user ID.
LINK_MAX Max. number of links to a
- 8......32767
-
-
single file.
MAX_CANON Max. bytes in a terminal 255 256
canonical input line.
-
NAME_MAX....Max. number of bytes allowed in 14
- See note
- a terminal input queue.
-
-
OPEN_MAX Max. number of files open
- 16.....See note
- in a process.
-
| PATH_MAX | Max. number bytes in a pathname. 255.....See note |
| PIPE_BUF | Max. number of bytes guaranteed 512 |
- 5120
- to be atomic in a write to a pipe.
-
-
STREAM_MAX Number of streams one process
- 8......8
- can have open at one time.
-
-
TZ_NAME_MAX Max. number number of bytes
- 3......3
- supported for a time zone name.
-
Notes:
-
CHILD_MAX depends on how the system kernel is configured.
- The maximum values for NAME_MAX and PATH_MAX vary depending on the file system type, but always provide at least the minimum requirement. The most common values are 255 for NAME_MAX and 1024 for PATH_MAX. Values for a specific path are available using pathconf().
-
OPEN_MAX defaults to 64, but users can increase or decrease this value using routines not specified by POSIX.1 or XPG4.
- Rationale
- Each of these limits can vary within bounds set by the Systems Interfaces and Headers, Issue 4. The minimum value that a limit can take on any X/Open
- conforming system is given in the corresponding _POSIX_ 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_ value provides a known lower bound for the range of possible values.
- Reference
- X/Open CAE Specification, System Interfaces and Headers, Issue 4, Chapter 4, Headers, <limits.h>
Question 5: What are the values associated with the following constants specified in the <limits.h> header file?
Answer:
-
Macro Name..Meaning..........Min.Maximum
-
-
BC_BASE_MAX Max. ibase and obase values
- 99 32767 (SHRT_MAX)
- allowed by the bc utility.
-
-
BC_DIM_MAX Max. number of elements
- 2048 32768 (SHRT_MAX+1)
-
-
permitted in an array by the
bc utility.
BC_SCALE_MAX Max. scale value allowed by
- 99 32767 (SHRT_MAX)
- the bc utility.
-
-
BC_STRING_MAX Max. length of a string constant
- 1000 2048 (LINE_MAX)
- accepted by the bc utility.
-
COLL_WEIGHTS_MAX Max. number of weights that can 2..4
- be assigned to an entry of the LC_COLLATE order keyword in the local definition file.
-
-
EXPR_NEST_MAX Max. number of expressions that 32 32
can be nested within parentheses
by the expr utility.
-
LINE_MAX....Max. length in bytes including the 2048
- 2048
- trailing newline of a utility's input line when the utility is described as processing text files.
- (continued)
-
Macro Name..Meaning
-
Min. Maximum
-
-
NGROUPS_MAX Max. number of simultaneous
- 16 16
- supplementary group IDs per process.
-
-
RE_DUP_MAX Max. number of repeated
- 255 255
- occurrence of a regular expression permitted when using interval notation.
- Rationale
- Each of these limits can vary within bounds set by the System Interfaces and Headers, Issue 4. The minimum value that a limit can take on any X/Open 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 miminum value must always be definitive since the _POSIX_ or _POSIX2_ value provides a known lower bound for the range of possible values.
- Reference
- X/Open CAE Specification, System Interfaces and Headers, Issue 4, Chapter 4, Headers, <limits.h>
Question 6: What are the values associated with the following numerical constants specified in the <limits.h> header file?
Answer:
-
Macro Name....Meaning...........Value
-
-
CHAR_BIT Number of bits in a char.
- 8
-
-
CHAR_MAX Max. value of a char. 127
INT_MAX Max. value of an int. 2147483647
LONG_BIT Number of bits in a long int. 32
- (continued)
-
| Macro Name | Meaning...........Value |
-
-
MB_LEN_MAX Max. number of bytes in a
- 5
- character, for any supported locale.
-
-
SCHAR_MAX Max. value of a signed char. 127
SHRT_MAX Max. value of a short. 32767
SSIZE_MAX Max. value of an object of type 2147483647
ssize_t.
UCHAR_MAX Max. value of an unsigned char. 255
UINT_MAX Maximum value of an unsigned
- 4294967295U
- int.
-
-
ULONG_MAX Max. value of an unsigned long
- 4294967295UL
- int.
-
-
USHRT_MAX Max. value of an unsigned 65535
short int.
WORD_BIT Number of bits in a word
- 32
- or int.
- Rationale This set of constants provides useful information regarding the underlying architecture of the implementation.
- Reference
- X/Open CAE Specification, System Interfaces and Headers, Issue 4, Chapter 4, Headers, <limits.h>.
Question 7: What are the values associated with the following numerical constants specified in the <stdio.h> header file?
Answer:
-
Macro Name....Meaning...........Value
-
-
FOPEN_MAX Number of streams which
- 20 (SPARC)
-
-
the implementation guarantees 60 (x86)
can be open simultaneously.
L_tmpnam Max. size of character array
- 25
- to hold tmpnam() output.
-
-
TMP_MAX Minimum number of unique
- 17567
- filenames generated by tmpnam(), which is the maximum number of times an application can call tmpnam() reliably.
- Rationale
- This set of constants provide useful information about the implementation.
- Reference
- X/Open CAE Specification, System Interfaces and Headers, Issue 4, Chapter 4, Headers, <stdio.h>
1.1.4 ERROR CONDITIONS
Question 8: Which of the following option errors listed in the System Interfaces and Headers, Issue 4 are detected in the circumstances specified?
Answer:
-
Function....Error............Detected
-
-
access() EINVAL
- Yes
-
-
ETXTBSY No
acos() EDOM Yes
asin() EDOM
- Yes
-
-
ERANGE No
- (continued)
-
Function....Error............Detected
-
-
atan() EDOM
- Yes
-
-
ERANGE No
atan2() EDOM
- Yes
-
-
ERANGE Yes
catclose() EBADF
- No
-
-
EINTR No
catgets() EBADF
- No
-
-
EINTR No
catopen() EACCES
- Yes
-
-
EMFILE Yes
ENAMETOOLONG Yes
ENFILE Yes
ENOENT Yes
ENOMEM Yes
ENOTDIR Yes
ceil() EDOM Yes
cfsetispeed() EINVAL
- No
-
-
cfsetospeed() EINVAL No
chmod() EINVAL No
chown() EINVAL Yes
closedir() EBADF
- Yes
-
-
EINTR No
cos() EDOM
- Yes
-
-
ERANGE No
cosh() EDOM Yes
erf() EDOM
- Yes
-
-
ERANGE No
erfc() EDOM
- Yes
-
-
ERANGE No
- (continued)
-
Function....Error............Detected
-
-
exec() ENOMEM
- Yes
-
-
ETXTBSY No
exp() EDOM
- No
-
-
ERANGE Yes
fabs() EDOM
- Yes
-
-
ERANGE No
fcntl() EDEADLK Yes
fdopen() EBADF
- No
-
-
EINVAL No
EMFILE Yes
ENOMEM Yes
fgetc() ENOMEM
- Yes
-
-
ENXIO Yes
fgetwc() ENOMEM
- Yes
-
-
ENXIO Yes
EILSEQ Yes
fileno() EBADF No
floor() EDOM Yes
fmod() EDOM
- Yes
-
-
ERANGE No
fopen() EINVAL
- No
-
-
EMFILE Yes
ENOMEN Yes
ETXTBSY No
fork() ENOMEM Yes
fpathconf() EBADF
- Yes
-
-
EINVAL Yes
fprintf() EINVAL
- Yes
-
-
EILSEQ Yes
- (continued)
-
Function....Error............Detected
-
-
fputc() ENOMEM
- Yes
-
-
ENXIO Yes
fputwc() ENOMEM
- Yes
-
-
ENXIO Yes
EILSEQ Yes
freopen() EINVAL
- No
-
-
ENOMEM No
ETXTBSY No
frexp() EDOM Yes
fseek() EINVAL
- Yes
-
-
EPIPE No
ftw() EINVAL No
getcwd() EACCES
- Yes
-
-
ENOMEM Yes
getgrgid() EIO
- Yes
-
-
EINTR No
EMFILE Yes
ENFILE Yes
getgrnam() EIO
- Yes
-
-
EINTR No
EMFILE Yes
ENFILE Yes
getlogin() EMFILE
- Yes
-
-
ENFILE Yes
ENXIO Yes
getpass() EINTR No
EIO No
EMFILE Yes
ENFILE No
ENXIO No
- (continued)
-
Function....Error............Detected
-
-
getpwnam() EIO
- Yes
-
-
EINTR No
EMFILE Yes
ENFILE Yes
getpwuid() EIO
- Yes
-
-
EINTR Yes
EMFILE Yes
hsearch() ENOMEM Yes
hypot() EDOM
- Yes
-
-
ERANGE No
iconv() EBADF Yes
iconv_close() EBADF Yes
iconv_open() EMFILE
- Yes
-
-
ENFILE Yes
ENOMEM Yes
EINVAL Yes
isatty() EBADF
- No
-
-
ENOTTY No
j0() EDOM
- No
-
-
ERANGE Yes
j1() EDOM
- No
-
-
ERANGE Yes
jn() EDOM
- No
-
-
ERANGE Yes
ldexp() EDOM
- Yes
-
-
ERANGE No
lgamma() EDOM
- No
-
-
ERANGE Yes
link() EPERM
- Yes
-
-
EXDEV Yes
- (continued)
-
Function....Error............Detected
-
-
log() EDOM
- Yes
-
-
ERANGE No
log10() EDOM
- Yes
-
-
ERANGE No
mblen() EILSEQ Yes
mbstowcs() EILSEQ Yes
mbtowc() EILSEQ
- Yes
-
-
modf() EDOM Yes
ERANGE No
open() EINVAL
- No
-
-
ETXTBSY No
opendir() EMFILE
- Yes
-
-
ENFILE Yes
pathconf() EACCES
- Yes
-
-
EINVAL Yes
ENAMETOOLONG Yes
ENOENT Yes
ENOTDIR Yes
pow() EDOM
- Yes
-
-
ERANGE No
putenv() ENOMEM
- Yes
-
-
read() ENXIO Yes
readdir() EBADF Yes
rename() ETXTBSY No
setvbuf() EBADF No
sigaction() EINVAL Yes
sigaddset() EINVAL Yes
sigdelset() EINVAL Yes
- (continued)
-
Function....Error............Detected
-
-
sigismember() EINVAL Yes
signal() EINVAL Yes
sin() EDOM
- No
-
-
ERANGE Yes
sinh() EDOM No
ERANGE Yes
sqrt() EDOM Yes
strcoll() EINVAL No
strerror() EINVAL No
strxfrm() EINVAL No
tan() EDOM
- Yes
-
-
ERANGE No
tanh() EDOM
- Yes
-
-
ERANGE No
tcdrain() EIO Yes
tcflush() EIO Yes
tcsendbreak() EIO Yes
tcsetattr() EIO Yes
tmpfile() EMFILE Yes
ENOMEM Yes
ttyname() EBADF Yes
ENOTTY Yes
ungetwc() EILSEQ Yes
unlink() ETXTBSY No
wcscoll() EINVAL Yes
wcstombs() EILSEQ Yes
wcsxfrm() EINVAL Yes
- (continued)
-
Function....Error............Detected
-
-
write() ENXIO
- Yes
-
-
y0() EDOM Yes
ERANGE No
y1() EDOM
- Yes
-
-
ERANGE No
yn() EDOM
Yes
ERANGE No
- Rationale
- Each of the above error conditions is marked as optional in System Interfaces and Headers, Issue 4 and an implementation may return this error in the circumstances specified or may not provide the error indication.
- Reference
- X/Open CAE Specification, System Interfaces and Headers, Issue 4, Section 2.3, Error Numbers.
1.1.5 Mathmatical Interfaces
Question 9: What format of floating-point numbers is supported by this implementation?
Answer:
- IEEE floating point format.
- 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
- X/Open CAE Specification, System Interfaces and Headers, Issue 4, Section 1.6, Relationship to Formal Standards.
1.1.6 DATA ENCRYPTION
Question 10: Are the optional data encryption interfaces provided?
Answer:
-
| Function | Provided |
| crypt() | Yes |
| encrypt() | Yes (Decryption capabilities not provided to areas restricted by U.S. export law.) |
-
-
setkey() Yes
- 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
- X/Open CAE Specification, System Interfaces and Headers, Issue 4, Section 1.2, Conformance.
-
Section 1.2: PROCESS HANDLING
1.2.1 PROCESS GENERATION
Question 11: Which files types (regular, directory, FIFO, special, and so on) are considered to be executable?
Answer:
- Only regular file types may be executed.
- 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
- X/Open CAE Specification, System Interfaces and Headers, Issue 4, Chapter 3, Functions, exec.
-
Section 1.3: FILE HANDLING
1.3.1 ACCESS CONTROL
Question 12: What file access control mechanisms does the implementation provide?
Answer: There is no additional or optional file access control mechanism.
- Rationale
- System Interfaces and Headers, Issue 4 notes that implementations may provide additional or alternate file access control mechanisms, or both.
- Reference
- X/Open CAE Specification, System Interfaces Definitions, Issue 4, Chapter 2, Glossary, file access permissions.
1.3.2 FILES AND DIRECTORIES
Question 13: Are any additional or alternate file access control mechanisms implemented that could cause fstat() or stat() to fail?
Answer:
- There is no additional or optional file access control mechanism.
- Rationale
- System Interfaces and Headers, Issue 4 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
- X/Open CAE Specification, System Interfaces Definitions, Issue 4, Chapter 3, Functions, fstat() and stat().
1.3.3 FORMATTING INTERFACES
Question 14: Does the printf() function produce character string representations for Infinity and NaN to represent the respective values?
Answer:
- Yes.
- Rationale
- This behaviour is ofter provided on systems with mathematical functions that produce these results.
- Reference
- X/Open CAE Specification, System Interfaces Definitions, Issue 4, Chapter 3, Functions, fprintf().
Section 1.4: INTERNATIONALIZED SYSTEM INTERFACES
1.4.1 CODED CHARACTER SETS
Question 15: What coded character sets are supported by the implementation?
Answer:
- Solaris 2.4 supports the following coded character sets:
- ASCII ISO 8859-1 JIS X0201 JIS X0208 KS C 5601-87 GB 2312-80 CNS 11643-1986
- Rationale System Interface Definitions, Issue 4 states that conforming implementations support one or more coded character sets, and that each of these includes the portable character set.
- Reference
- X/Open CAE Specification, System Interfaces Definitions, Issue 4, Chapter 4, Character Set.
Question 16: What is the implementation's underlying internal codeset?
Answer:
- ISO 8859-1:1987
- Rationale
- It is useful to be aware of the underlying codeset of the implementation.
- Reference
- X/Open CAE Specification, System Interfaces Definitions, Issue 4, Chapter 4, Character Set.
|
|