Ap C. System-Dependent Information [ HP C/iX Library Reference Manual ] MPE/iX 5.0 Documentation
HP C/iX Library Reference Manual
Appendix C System-Dependent Information
This appendix briefly summarizes the differences between the HP C/iX
library as it is implemented on HP 3000 Series 900 computers and HP 9000
Series 700/800 computers. Because the HP 9000 Series 700/800 are
UNIX-based (1) systems, the summary of differences given will usually
apply to other UNIX-based systems as well. Refer to chapter 5 for
detailed descriptions of the HP C/iX library functions. Refer to the HP
C/HP-UX Reference Manual for complete descriptions of the HP C/HP-UX
functions.
FOOTNOTE (1) UNIX is a trademark of AT and T in the U.S. and other
countries.
[REV BEG]
Additional differences between POSIX/iX library functions and HP C/HP-UX
library functions are described in the MPE/iX Developer's Kit Reference
Manual.[REV END]
This appendix is organized alphabetically by function name. For each
function, a description of the behavior on both systems is provided.
abort
HP 9000 Series The abort function sends a signal to the
700/800: calling process to terminate it. If this
signal is caught or ignored, abort returns
without terminating the process. If this
signal is neither caught nor ignored, a core
dump is produced and a message is issued.
HP 3000 Series 900: The abort function uses the QUIT intrinsic to
terminate a process. This always results in
process termination. No core dump is produced.
access
HP 9000 Series The following amode parameter bit pattern is
700/800: supported:
01 execute (search)
This option checks whether a file may be
executed.
HP 3000 Series 900: The execute amode parameter bit pattern is not
supported.
brk and sbrk
HP 9000 Series Newly allocated space obtained from brk and
700/800: sbrk is set to zero.
HP 3000 Series 900: Newly allocated space obtained from brk and
sbrk is not set to zero.
malloc
HP 9000 Series The default memory allocation package provided
700/800: in the C library is not the fast memory
allocation package. This package is known as
the malloc(3C) package.
HP 3000 Series 900: The memory allocation package provided in the C
library is the fast memory allocation package.
This package is known as the malloc(3X) package
on the HP 9000 Series 700/800. It is available
on HP 9000 Series 700/800 by using the -lmalloc
linker option.
mktemp
HP 9000 Series The string of X's in the argument to mktemp are
700/800: replaced by the current process identification
number.
HP 3000 Series 900: The string of X's in the argument to mktemp are
replaced by a randomly generated number.
open
HP 9000 Series The following options are available:
700/800:
O_NDELAY: This option controls whether a
process blocks on an I/O request
until the request is completed.
O_EXCL: If O_EXCL and O_CREAT are set,
open() fails if the file exists.
O_SYNCIO: If a file is opened with O_SYNCIO,
file system writes for that file are
done through the cache to the disk
as soon as possible, and the process
blocks until this is completed.
The O_MPEOPTS option that allows you to specify
MPE-like file attributes is not available.
HP 3000 Series 900: The O_MPEOPTS option is available. The
O_NDELAY, O_EXCL and O_SYNCIO options are not
available.
read
HP 9000 Series An open option is available to specify whether
700/800: or not a process should block until the read
request is complete.
HP 3000 Series 900: No open option is available to specify whether
or not a process should block until the read
request is completed. A process always blocks
until the read request is complete.
setjmp and longjmp
HP 9000 Series The setjmp and longjmp functions save and
700/800: restore a signal mask while _setjmp and
_longjmp manipulate only the stack and
registers. The setjmp and longjmp functions
may be able to detect a condition in which the
environment of the setjmp no longer exists and
recover.
HP 3000 Series 900: The setjmp and longjmp functions do not save
and restore a signal mask; they manipulate only
the stack and registers. The setjmp and
longjmp functions are not able to detect a
condition in which the environment of the
setjmp no longer exists.
sleep
HP 9000 Series The sleep function is implemented using
700/800: signals. These signals may cause the time
slept to be more or less than the requested
sleep time. If the actual sleep time is less
than the requested sleep time, sleep returns
the difference in these two times.
Seconds must be less than 232.
HP 3000 Series 900: The sleep function is implemented by calling
the PAUSE intrinsic. Signals will not
interfere with the amount of time slept. Sleep
returns its argument if an error occurs, zero
if no error occurs.
Seconds must be less than 2,147,485.
write
HP 9000 Series If a write requests more bytes to be written
700/800: than there is room for, the write fails and -1
is returned.
An open option is available to specify whether
or not a process should block until the write
request has completed.
HP 3000 Series 900: If a write requests more bytes to be written
than the file size limit, only as many bytes as
there is room for are written. For example, if
there is space for 20 bytes more in a file
before reaching a limit, a write of 512 bytes
returns 20. The next write of a non-zero
number of bytes gives a failure return.
No open option is available to specify whether
or not a process should block until the write
request has completed. A process blocks until
the write request is completed.
MPE/iX 5.0 Documentation