1
0

Source code upload

This commit is contained in:
calmsacibis995
2022-09-29 17:59:04 +03:00
parent 72fa9da3d7
commit 8fc8fa8089
33399 changed files with 11964078 additions and 0 deletions
+43
View File
@@ -0,0 +1,43 @@
/*
* docs/README
*
*
* Copyright 1996, Silicon Graphics, Inc.
* ALL RIGHTS RESERVED
*
* UNPUBLISHED -- Rights reserved under the copyright laws of the United
* States. Use of a copyright notice is precautionary only and does not
* imply publication or disclosure.
*
* U.S. GOVERNMENT RESTRICTED RIGHTS LEGEND:
* Use, duplication or disclosure by the Government is subject to restrictions
* as set forth in FAR 52.227.19(c)(2) or subparagraph (c)(1)(ii) of the Rights
* in Technical Data and Computer Software clause at DFARS 252.227-7013 and/or
* in similar or successor clauses in the FAR, or the DOD or NASA FAR
* Supplement. Contractor/manufacturer is Silicon Graphics, Inc.,
* 2011 N. Shoreline Blvd. Mountain View, CA 94039-7311.
*
* THE CONTENT OF THIS WORK CONTAINS CONFIDENTIAL AND PROPRIETARY
* INFORMATION OF SILICON GRAPHICS, INC. ANY DUPLICATION, MODIFICATION,
* DISTRIBUTION, OR DISCLOSURE IN ANY FORM, IN WHOLE, OR IN PART, IS STRICTLY
* PROHIBITED WITHOUT THE PRIOR EXPRESS WRITTEN PERMISSION OF SILICON
* GRAPHICS, INC.
*/
This is the irix ism internal document directory.
The documents in this tree are for internal SGI use.
User documents reside in the man and book directories.
Technical writers can use the documentation in this directory
to write the real User's Manuals (books).
To expedite document searches, the tree below this directory
replicates the tree structure of the irix directory, placing
the documents where in the irix tree you'd find code.
For instance, the documents for the NUMA kernel module are
placed in irix/docs/kern/os/numa.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
+34
View File
@@ -0,0 +1,34 @@
/*
* docs/kern/os/numa/README
*
*
* Copyright 1996, Silicon Graphics, Inc.
* ALL RIGHTS RESERVED
*
* UNPUBLISHED -- Rights reserved under the copyright laws of the United
* States. Use of a copyright notice is precautionary only and does not
* imply publication or disclosure.
*
* U.S. GOVERNMENT RESTRICTED RIGHTS LEGEND:
* Use, duplication or disclosure by the Government is subject to restrictions
* as set forth in FAR 52.227.19(c)(2) or subparagraph (c)(1)(ii) of the Rights
* in Technical Data and Computer Software clause at DFARS 252.227-7013 and/or
* in similar or successor clauses in the FAR, or the DOD or NASA FAR
* Supplement. Contractor/manufacturer is Silicon Graphics, Inc.,
* 2011 N. Shoreline Blvd. Mountain View, CA 94039-7311.
*
* THE CONTENT OF THIS WORK CONTAINS CONFIDENTIAL AND PROPRIETARY
* INFORMATION OF SILICON GRAPHICS, INC. ANY DUPLICATION, MODIFICATION,
* DISTRIBUTION, OR DISCLOSURE IN ANY FORM, IN WHOLE, OR IN PART, IS STRICTLY
* PROHIBITED WITHOUT THE PRIOR EXPRESS WRITTEN PERMISSION OF SILICON
* GRAPHICS, INC.
*/
This directory contains all the NUMA kernel module documents
mmci_users_manual:
Basic user's manual for the Memory Management Control Interface
mmci_slides:
Frame slides for a talk describing the Memory Management Control Interface
@@ -0,0 +1,47 @@
TITLE="MMCI Slides"
TARGET=mmci_slides
FMBATCH=$(TOOLROOT)/usr/frame/bin/fmbatch
.SUFFIXES: .frm .mif .ps
.frm.mif:
@TMPFILE=./${@:.mif=.$$.tmp}; \
echo "Open $<" > $${TMPFILE}; \
echo "SaveAs m $< $*.mif" >> $${TMPFILE}; \
echo "Quit $<" >> $${TMPFILE}; \
${FMBATCH} $${TMPFILE}; \
rm -f $${TMPFILE}
.frm.ps:
@TMPFILE=./${@:.ps=.$$.tmp}; \
echo "Open $<" > $${TMPFILE}; \
echo "Open print_options.frm" >> $${TMPFILE}; \
echo "Print $< print_options.frm" >> $${TMPFILE}; \
echo "Quit $<" >> $${TMPFILE}; \
${FMBATCH} $${TMPFILE}; \
rm -f $${TMPFILE}
##BASED=/usr/ns-home/docs/mempage
##DESTD=$(BASED)/`pwd | sed "s/\/.*\///g"`
${TARGET}: ${TARGET}.mif ${TARGET}.ps
## webmaker -c ${TARGET}.wml -t $(TITLE) ${TARGET}.mif
## wmgraph -n ${TARGET}
##publish:
## @echo PUBLISHING TO $(DESTD)
## @if test ! -d $(DESTD); then mkdir $(DESTD); fi; cp $(TARGET).ps wmwork/www/* $(DESTD)
##install: $(TARGET) publish
default: ${TARGET}
install: ${TARGET}
prune:
rm -f *~ *.backup
clobber: prune
rm -fr *.mif *.ps wmwork
Binary file not shown.
Binary file not shown.
@@ -0,0 +1,64 @@
TITLE="MMCI User's Manual"
TARGET=mmci_users_manual
FMBATCH=$(TOOLROOT)/usr/frame/bin/fmbatch
.SUFFIXES: .book .frm .mif .ps
.frm.mif:
@TMPFILE=./${@:.mif=.$$.tmp}; \
echo "Open $<" > $${TMPFILE}; \
echo "SaveAs m $< $*.mif" >> $${TMPFILE}; \
echo "Quit $<" >> $${TMPFILE}; \
${FMBATCH} $${TMPFILE}; \
rm -f $${TMPFILE}
.frm.ps:
@TMPFILE=./${@:.ps=.$$.tmp}; \
echo "Open $<" > $${TMPFILE}; \
echo "Open print_options.frm" >> $${TMPFILE}; \
echo "Print $< print_options.frm" >> $${TMPFILE}; \
echo "Quit $<" >> $${TMPFILE}; \
${FMBATCH} $${TMPFILE}; \
rm -f $${TMPFILE}
.book.mif:
@TMPFILE=./${@:.mif=.$$.tmp}; \
echo "Open $<" > $${TMPFILE}; \
echo "SaveAs m $< $*.mif" >> $${TMPFILE}; \
echo "Quit $<" >> $${TMPFILE}; \
${FMBATCH} $${TMPFILE}; \
rm -f $${TMPFILE}
.book.ps:
@TMPFILE=./${@:.ps=.$$.tmp}; \
echo "Open $<" > $${TMPFILE}; \
echo "Open print_options.frm" >> $${TMPFILE}; \
echo "Print $< print_options.frm" >> $${TMPFILE}; \
echo "Quit $<" >> $${TMPFILE}; \
${FMBATCH} $${TMPFILE}; \
rm -f $${TMPFILE}
##BASED=/usr/ns-home/docs/mempage
##DESTD=$(BASED)/`pwd | sed "s/\/.*\///g"`
${TARGET}: ${TARGET}.mif ${TARGET}.ps
## webmaker -c ${TARGET}.wml -t $(TITLE) ${TARGET}.mif
## wmgraph -n ${TARGET}
##publish:
## @echo PUBLISHING TO $(DESTD)
## @if test ! -d $(DESTD); then mkdir $(DESTD); fi; cp $(TARGET).ps wmwork/www/* $(DESTD)
##install: $(TARGET) publish
default: ${TARGET}
install: ${TARGET}
prune:
rm -f *~ *.backup
clobber: prune
rm -fr *.mif *.ps wmwork
+32
View File
@@ -0,0 +1,32 @@
/*
* docs/kern/os/vm/README
*
*
* Copyright 1996, Silicon Graphics, Inc.
* ALL RIGHTS RESERVED
*
* UNPUBLISHED -- Rights reserved under the copyright laws of the United
* States. Use of a copyright notice is precautionary only and does not
* imply publication or disclosure.
*
* U.S. GOVERNMENT RESTRICTED RIGHTS LEGEND:
* Use, duplication or disclosure by the Government is subject to restrictions
* as set forth in FAR 52.227.19(c)(2) or subparagraph (c)(1)(ii) of the Rights
* in Technical Data and Computer Software clause at DFARS 252.227-7013 and/or
* in similar or successor clauses in the FAR, or the DOD or NASA FAR
* Supplement. Contractor/manufacturer is Silicon Graphics, Inc.,
* 2011 N. Shoreline Blvd. Mountain View, CA 94039-7311.
*
* THE CONTENT OF THIS WORK CONTAINS CONFIDENTIAL AND PROPRIETARY
* INFORMATION OF SILICON GRAPHICS, INC. ANY DUPLICATION, MODIFICATION,
* DISTRIBUTION, OR DISCLOSURE IN ANY FORM, IN WHOLE, OR IN PART, IS STRICTLY
* PROHIBITED WITHOUT THE PRIOR EXPRESS WRITTEN PERMISSION OF SILICON
* GRAPHICS, INC.
*/
This directory contains all the generic VM documents
large_pages:
Design and interfaces for multiple page size support.
+46
View File
@@ -0,0 +1,46 @@
TITLE="Multiple Page Sizes"
TARGET=mszpages
FMBATCH=$(TOOLROOT)/usr/frame/bin/fmbatch
.SUFFIXES: .frm .mif .ps
.frm.mif:
@TMPFILE=./${@:.mif=.$$.tmp}; \
echo "Open $<" > $${TMPFILE}; \
echo "SaveAs m $< $*.mif" >> $${TMPFILE}; \
echo "Quit $<" >> $${TMPFILE}; \
${FMBATCH} $${TMPFILE}; \
rm -f $${TMPFILE}
.frm.ps:
@TMPFILE=./${@:.ps=.$$.tmp}; \
echo "Open $<" > $${TMPFILE}; \
echo "Open print_options.frm" >> $${TMPFILE}; \
echo "Print $< print_options.frm" >> $${TMPFILE}; \
echo "Quit $<" >> $${TMPFILE}; \
${FMBATCH} $${TMPFILE}; \
rm -f $${TMPFILE}
##BASED=/usr/ns-home/docs/mempage
##DESTD=$(BASED)/`pwd | sed "s/\/.*\///g"`
${TARGET}: ${TARGET}.mif ${TARGET}.ps
## webmaker -c ${TARGET}.wml -t $(TITLE) ${TARGET}.mif
## wmgraph -n ${TARGET}
##publish:
## @echo PUBLISHING TO $(DESTD)
## @if test ! -d $(DESTD); then mkdir $(DESTD); fi; cp $(TARGET).ps wmwork/www/* $(DESTD)
##install: $(TARGET) publish
default: ${TARGET}
install: ${TARGET}
prune:
rm -f *~
clobber: prune
rm -fr *.mif *.ps wmwork
Binary file not shown.
Binary file not shown.
+23
View File
@@ -0,0 +1,23 @@
# pcd/Makefile 1.9 99/01/20 (C) Copyright 1999 Silicon Graphics, Inc.
SRCS = pcdmacros cover.mm chap02.mm chap03.mm chap04.mm \
chap05.mm chap06.mm chap07.mm chap08.mm chap09.mm \
chap10.mm toc.mm
pcd.ps: ${SRCS}
tbl ${SRCS} | psroff -mm -t > pcd.ps
pcd.nr: ${SRCS}
tbl ${SRCS} | nroff -mm -u -Tlp > pcd.nr
nroff:
-rm pcd.nr
make pcd.nr
psroff: pcd.ps
deledit:
sccs deledit Makefile README ${SRCS}
archive:
shar Makefile README.mm ${SRCS} > pcd.88.shar
+96
View File
@@ -0,0 +1,96 @@
`\" pcd/README.mm 1.6 99/01/20 (C) Copyright 1999 Silicon Graphics, Inc.
.if '\*(cC'YES' \{
.PH "'POSIX CONFORMANCE DOCUMENT''99/01/20'"
.PF "''(C) Copyright 1999 Silicon Graphics, Inc.'- % -'"
.bp
.2 1 "Overview"
This document is a template for the document required
for conformance to IEEE Std. 1003.1.
By setting certain options in the nroff/troff source files
this document can be formatted first as a fill-in-the-blanks
workbook to be used by technical staff to compile the needed data,
and can later be
modified to produce an actual POSIX conformance document.
.2 2 "Printing"
You can print this document using \fBnroff\fR or \fBtroff\fR.
The Makefile in the source directory contains targets that
should be easily adaptable by the addition of any system-specific options.
.P
This document uses the \fBtbl\fR utility and the \fBmm\fR macros as well as the
standard \fBnroff/troff\fR commands. In addition, it uses a series of macros
contained in the file \fIpcdmacros\fR.
Some of these macros format text, whereas others divide the documentation
in categories. Each of the categories has one or more
flags associated with it.
.P
These macros define seven categories of conformance documentation:
.AL 1 "" 1
.LI
rP -- A required paragraph.
.LI
iD -- Required because it describes an implementation-defined feature.
.LI
rF -- Required if the extended feature is present.
.LI
jC -- Required if POSIX_JOB_CONTROL is not supported.
.LI
mV -- Recommended for an "implementations may vary" feature/behavior.
.LI
uD -- Optional for an "undefined" feature/behavior.
.LI
uS -- Optional for an "unspecified" feature/behavior.
.LE
.P
You can find the appropriate printing flags
near the beginning of the
\fIpcdmacros\fR file. These flags come set to print all instructions and types
of conformance documentation. These flags are documented in the file and
should be self-explanatory.
.P
Modify the cN and sN strings in the 'pcdmacros' file
so that they print your company and system name.
.P
Before you print the template document you may wish
to suppress the printing of any of the following three
categories: mV (for "may vary"), uD (for "undefined"), or uS (for
"unspecified"). If your system has job control,
set the jX string to NO to suppress printing of
paragraphs that are needed only if job control is not supported.
.H 1 "Editing for the final document"
To prepare this document for the final version, you will need to edit the
template to reflect the responses from the appropriate engineers. As you
do so, remember that you will,
in general, not have to remove the macro
commands. Rather, you control these by the use of flags in the macro file.
.P
You will, however, have to delete some text and add text at other places.
You can locate those places where the template document defines options by
identifying the appropriate .oP/.oE pair. Between these macro commands,
you should find text separated by a slash, with choices on either side.
You will need to delete one of these options and the slash as determined
by the appropriate engineer.
.P
In other cases, the template document prints out blank lines for use by
the engineers. These blank lines are controlled by the bL macro. All you
need to do is enter appropriate text after the .bL macro command. You need
not issue a .P (paragraph) command since this is included in
the category macro (.rP, .rF, etc.).
.P
You will also need to edit the blank tables, filling in the appropriate
fields. If you choose not to use a given table, but to enter, for example,
lists instead, you will need to delete the table macros and, if present,
the .rN macro command which defines space needs requests.
.P
You may also need to delete certain sections that the engineers determine
are not relevant. This may be by category, in which case you control the
deletion of these by use of the flags provided at the head
of the \fIpcdmacros\fR
file. In other cases, however, you will need
to delete paragraphs on a case-by-case basis.
This is particularly true if you decide not to use the
flags provided to delete all mV, uD, or uS categories.
.P
When deleting on a case-by-case basis, delete from the macro command
(e.g., .mV) to the beginning of the next macro command that is associated
with an assertion category, except for any header (.H) commands.
\}
+257
View File
@@ -0,0 +1,257 @@
'\" pcd/chap02.mm
.bp 0\"used to set the page number accurately
.nr P 0
.1 2 "Definitions and General Requirements" "Definitions, Requirements"
.2 2 "Conformance"
.3 1 "Implementation Conformance"
.rP
The \*(sN
operating system conforms to the IEEE Std 2003.1-1992
(\*(pN) with
Common Usage C Language-Dependent System Support.
.90 1.3.1 "Standard name is ISO/IEC 9945-1: 1992 (IEEE Std2003.1-1992)"
.rP
The
\*(sN
kernel is POSIX conformant as shipped. If FIPS-1 conformance is required,
the following changes should be made via the command \fBsystune\fR as
superuser:
.P
# systune -i
.br
Updates will be made to running system and /unix.install
.br
systune-> restricted_chown 1
.br
restricted_chown = 0
.br
Do you really want to change restricted_chown to 1 (0x1)? (y/n) y
.br
systune-> posix_tty_default 1
.br
posix_tty_default = 0
.br
Do you really want to change posix_tty_default to 1 (0x1)? (y/n) y
.br
systune-> q
.P
A new kernel will be built: see autoconfig(1M),
and the system rebooted to run with the new kernel.
.P
Also, to obtain Common Usage C behaviour, the compiler must be configured
appropriately. There are two ways in which this can be done: either the command
line option -cckr may be given, or the environment variable SGI_CC may be set
to the string -cckr.
.2 3 "General Terms"
The following paragraphs briefly define terms specific to the
\*(sN
implementation of \*(pN.
For more details, see the
\*(sN
system documentation.
.br
.iD
\fBappropriate privileges\fR: On
\*(sN
systems, appropriate privileges are associated with the superuser; the
superuser is defined as a user with a uid of zero. To become
superuser, or run a command as superuser, from the command prompt or from
a shellscript, the command "su" is used. See su(1M).
.P
It should be noted that the \fBAccess Control Lists\fR feature
[See \fBacl(4)\fR] and the \fBuser capability database\fR feature
[See \fBcapabilities(4)\fR and \fBcapability(4)\fR] were not used
while certifying POSIX.
.iD
\fBcharacter special file\fR: On
\*(sN
systems, other than \fIterminal device files\fR,
the
following \fIcharacter special files\fR are available:
.P
Disk device special files and tape device special files: see intro(7).
.P
Pseudo tty device files: see the pty(7M) man page, which provide a terminal
interface independent of physical hardware.
.P
Several other types of character special files exist. They are listed here
for information; however, many of them are intended for the use of specialised
system programs and should not be considered a general-purpose user resource.
.P
Subject to optional software, special files for DECnet link level interface:
see dn_ll(7M).
.P
A special file for system software access to filesystems: see fsctl(7M).
.P
A special file for interface to the kernel error logging mechanism: see
klog(7M).
.P
A special file for access to system memory: see kmem(7M).
.P
On the personal IRIS only, a special file for accees to a parallel printer port:
see plp(7M).
.P
Special files for user-mode access to the SCSI bus: see ds(7M).
.P
Subject to hardware support, special files for 3270 interface:
see t3270(7M).
.P
Special files for providing user-level semaphore facilities: see usema(7M).
.90 2.2.2.9 "Structure is unspecified, not implementation-defined"
.mV
\fBfile\fR: Other than \fIregular, character special, block special, FIFO
special\fR, and \fIdirectory files\fR,
the following file types are available:
.P
Symbolic links. See ln(1), symlink(2).
.P
UNIX domain sockets. See socket(2).
.iD
\fBparent process ID\fR: On
\*(sN
sytems, if a child process continues to exist
after its creator process ceases to exist,
the \fIparent process ID\fR becomes the \fIprocess ID\fR of the
init process, process id 1.
.mV
\fBpathname\fR:
A \fIpathname\fR that begins with two slashes is interpreted as
if only one slash were present: ie as an absolute pathname.
.rF
\fBread-only file system\fR: \*(sN
restricts modifications to \fIread-only file systems\fR in the following ways:
files may not be created or deleted; no modification of file contents,
ownership, permissions, or times may occur.
.uS
\fBsupplementary group ID\fR:
A \fIprocess's effective group ID\fR
is included in
its list of \fIsupplementary group IDs\fR.
.2 4 "General Concepts"
.iD
\fBfile times update\fR:
Fields that are marked for update are updated
immediately in the incore copy of the inode, so the update will be visible
immediately to any process accessing the file. For performance reasons,
the on-disk copy is refreshed only periodically, however the updated
information is synchronized to disk when the last process referencing the file
closes it.
.2 5 "Error Numbers"
.iD
\*(sN
detects the
.Pe EFAULT
error condition for some system calls. For others, noted in
later sections of this document, an invalid address parameter will cause
a segmentation violation.
.iD
On
\*(sN
systems, the
.Pe EFBIG
error occurs when the size of a file exceeds
the maximum file size.
.2 6 "Primitive System Data Types"
.uS
In addition to those primitive system data types listed in Table 2-1, the
\*(sN
system defines
the following data types
whose names end with
\fI_t\fR, in POSIX.1 headers:
.br
.sp .3v
.ta 2i
In <types.h>:
.br
typedef long daddr_t; /* <disk address> type */
.br
typedef char * caddr_t; /* <core address> type */
.br
typedef short cnt_t; /* <count> type */
.br
typedef unsigned long paddr_t; /* <physical address> type */
.br
typedef int key_t; /* IPC key type */
.br
typedef unsigned char use_t; /* use count for swap. */
.br
typedef short sysid_t;
.br
typedef short index_t;
.br
typedef unsigned int lock_t; /* <spinlock> type */
.br
typedef signed char cpuid_t; /* cpuid */
.br
typedef long swblk_t;
.90 2.5 "The additional types are unspecified in the 1992 standard, not \
implementation-defined."
.2 7 "Environment Description"
.mV
\*(sN
permits all characters in the 8-bit ASCII character set except NULL
in environment variable names.
.2 8 "C Language Definitions"
.3 2 "POSIX Symbols"
.2 9 "Numerical Limits"
.iD
On
\*(sN
systems, \fB<limits.h>\fR contains
the following implementation-specific names and values:
.TS
tab(|), allbox;
cw(1.5i) cw(1.5i)
l l.
Name | Value
NGROUPS_MAX|16
LINK_MAX|30000
MAX_CANON|255
MAX_INPUT|255
NAME_MAX|255
PATH_MAX|1024
PIPE_BUF|10240
.TE
Note: ARG_MAX, CHILD_MAX and OPEN_MAX are not defined in limits.h
when _POSIX_SOURCE is in effect, since these values are not invariant; it
is possible to create systems with differing values. They are controlled
by the values \fBmaxup\fR, and \fBrlimit_nofile_max\fR, respectively.
Changes to these kernel variables must be made using the command
\fBsystune\fR see systune(1M) and a new kernel must be booted:
see autoconfig(1M)..
.90 2.9 "NGROUPS_MAX must always be present; others from <limits.h>, \
only if they're in the file. Add: SSIZE_MAX, STREAM_MAX, TZNAME_MAX."
.2 10 "Symbolic Constants"
.iD
On
\*(sN
systems, \fB<unistd.h>\fR contains the following values:
.TS
tab(|), allbox;
cw(2.5i) cw(1.0i)
l l.
Symbolic Constant | Value
R_OK|4
W_OK|2
X_OK|1
F_OK|0
SEEK_SET|0
SEEK_CUR|1
SEEK_END|2
_POSIX_JOB_CONTROL|1
_POSIX_SAVED_IDS|1
_POSIX_VERSION|199506L
_POSIX_VDISABLE|0xff
.TE
No definition is present for _POSIX_CHOWN_RESTRICTED
since versions of the system with differing behaviours may be created.
The behaviour is controlled by the value of the kernel variable
"restricted_chown". A kernel with values other than the default may be
created by changing this value via the command \fBsystune\fR: see systune(1M)
and reconfiguring: see autoconfig(1M).
.90 2.9 "NGROUPS_MAX must always be present; others from <limits.h>, \
.90 2.9 "Only limits need be reported from <limits.h> and <unistd.h>."
.nP
.dM
+462
View File
@@ -0,0 +1,462 @@
'\" pcd/chap03.mm 1.8 99/01/20 (C) Copyright 1999 Silicon Graphics, Inc.
.1 3 "Process Primitives"
.2 1 "Process Creation and Execution"
.3 1 "Process Creation"
.4 2 "Description"
.mV
On
\*(sN
systems, after a
.f fork ,
directory stream positioning is not shared between parent and child processes.
However, the underlying file descriptor (and its offset) is shared.
This offset advances when the library code providing the directory stream needs
to refill its buffer. This could happen in either parent or child, depending
on patterns of access: thus the process which did not cause the advance
would be likely, on later accesses, to experience an unexpected discontinuity
in the order of directory entries.
.P
Programmers should stick to the POSIX recommendation of allowing only one member
of the pair to use the directory stream after a
.f fork .
.uS
On
\*(sN
systems, after a
.f fork ,
the new child process inherits certain process characteristics,
concerned with
\*(sN
extensions,
not specified by
.pN .
See the fork(2) manpage for details.
.4 4 Errors
In addition to the EAGAIN conditions,
if a process is using the SGI parallel C facilities in library libmpc.a, a
.f fork
can fail with the ENOSPC or ENOLCK conditions. See the fork(2)
manpage for details.
.3 2 "Execute a File"
.4 2 "Description"
.iD
On
\*(sN
systems, when constructing a pathname that identifies a new process image
file, if the
.a file
argument does not contain a slash and the \fBPATH\fR environmental variable
is not present, the
.a file
argument is searched for in the following default list of directories for
normal users:
.sp
/usr/sbin
.br
/usr/bsd
.br
/sbin
.br
/usr/bin
.br
/usr/bin/X11
.sp
and for super users is searched for in the following default list of
directories:
.sp
/usr/sbin
.br
/usr/bsd
.br
/sbin
.br
/usr/bin
.br
/etc
.br
/usr/etc
.br
/usr/bin/X11
.sp
These default paths are obtained from the file: \fB/etc/default/login\fR
at login time. These default paths for normal and super users are inserted
into the \fB/etc/default/login\fR from \fB<paths.h>\fR.
.uS
On
\*(sN
systems,
the number of bytes available for the new process's combined argument and
environment lists is {ARG_MAX}.
Null terminators for each argument or environment string are
included in this total.
.mV
On
\*(sN
systems, the new process image inherits from the calling process image
the process attributes defined by
.pN
as well as some additional attributes.
See the exec(2) manpage for details.
.uS
On
\*(sN
systems, if the
.f exec
function failed but was able to locate the
\fIprocess image file\fR, the \fIst_atime\fR field
is not
marked for update.
.4 4 Errors
.rF
For the
.f exec
functions, \*(sN
detects the conditions and returns the corresponding errno value for
.Pe ENOMEM .
.2 2 "Process Terminations"
.3 1 "Wait for Process Termination"
.4 2 "Description"
.uS
If status information is available for two or more child processes,
the order in which their status is reported is undefined.
.iD
On
\*(sN
systems, in addition to the circumstances specified by
.pN
.f wait
or
.f waitpid
reports status when a child process traced with ptrace encounters a breakpoint.
See the ptrace(2) manpage.
Note that the ptrace mechanism is obsolescent and deprecated.
.iD
On
\*(sN
systems,
when a parent process terminates without waiting for all of its child
processes to terminate, the remaining child processes are assigned
process 1 (init) as their parent process.
.uD
An application should not use the value of
.k stat_loc
if the process is interrupted by a signal after calling
.f wait
or
.f waitpid .
.3 2 "Terminate a Process"
.4 2 "Description"
.iD
Children of a terminated process are assigned
process 1 (init) as their parent process.
.2 3 "Signals"
.3 1 "Signal Concepts"
.4 1 "Signal Names"
.mV
The following additional signals
occur in the \*(sN system:
.P
SIGTRAP
.br
SIGEMT
.br
SIGBUS
.br
SIGSYS
.br
SIGPWR
.br
SIGPOLL
.br
SIGIO
.br
SIGURG
.br
SIGWINCH
.br
SIGVTALRM
.br
SIGPROF
.br
SIGXCPU
.br
SIGXFSZ
.4 2 "Signal Generation and Delivery"
.uS
On \*(sN systems, if the action associated with a blocked signal is to ignore
the signal and that signal is generated for the process, the signal
is discarded immediately.
.iD
On
\*(sN
systems, if a subsequent occurrence of a pending signal is generated,
the signal is not delivered more than once.
.uS
On
\*(sN
systems,
the order in which multiple, simultaneously pending signals are delivered
to a process is undefined, and no assumptions should be made about it.
.iD
On
\*(sN
systems,
the following signals may be
generated which are not defined in
.pN :
.P
.ta 1i
SIGTRAP Trace trap
.br
SIGBUS Bus error
.br
SIGSYS Bad argument to system call
.br
SIGPOLL Pollable event occurred
.br
SIGIO Input/output possible signal
.br
SIGURG Urgent condition on IO channel
.br
SIGWINCH Window size changes
.br
SIGVTALRM Virtual time alarm
.br
SIGPROF Profiling alarm
.br
SIGXCPU Cpu time limit exceeded
.br
SIGXFSZ Filesize limit exceeded
.P
See the signal(2) manpage for information about these signals.
.P
In addition, the following signals are defined and recognised but are never
internally generated by the current version of \*(sN, though they may be sent
to a process by the
.f kill
function:
.P
SIGEMT EMT instruction
.br
SIGPWR Power-fail restart
.4 3 "Signal Actions"
The following actions occur in response to signals under
circumstances that are unspecified or undefined in
.pN .
.P
(2) \fBSIG_IGN\fR--ignore signal
.uD
Applications should not ignore SIGFPE, SIGILL, or SIGSEGV signals.
.uS
If a process sets the action for the SIGCHLD signal to SIG_IGN,
child processes of the process ignoring SIGCHLD do not create zombie
processes when they exit, and a
.f wait
will return no information about them.
.uD
Applications should not return from a signal-catching function
for a SIGFPE, SIGILL, or SIGSEGV signal.
.uS
If a process establishes a signal-catching function for the SIGCHLD
signal while it has a terminated child process for which it has not
waited, a SIGCHLD signal
is not
generated to indicate that the child process has terminated.
.3 2 "Send a Signal to a Process"
.4 2 "Description"
'\"On
'\"\*(sN
'\"systems,
'\".c kill "pid, sig"
'\"has the following implementation-specific behavior:
.mV
When a receiving process's effective user ID has been altered
through use of the S_ISUID mode bit (see \fB<sys/stat.h>\fR
sec. 5.6.1),
\*(sN
does
permit the application to receive a signal sent by the parent process or
by a process with the same real user ID.
.90 3.3.2.2 "Delete the preceding paragraph."
.iD
If
.a pid
is zero,
.a sig
is sent to all processes whose process group ID is equal to the
process group ID of the sender, and for which the process has permission
to send a signal, excluding the following set of system processes:
.P
process 0 (sched)
.br
process 1 (init).
.br
.uS
If
.a pid
is -1,
.f kill
behaves as follows:
.br
If the effective user ID of the sender is not super-user,
.a sig
will be sent to all processes excluding proc0 and proc1 whose
real user ID is equal to the effective user ID of the sender.
.P
If the effective user ID of the sender is super-user,
.a sig
will be sent to all processes excluding proc0 and proc1.
.iD
If
.a pid
is negative but not -1,
.a sig
will be sent to all processes whose process group ID is equal to the absolute
value of pid.
.3 3 "Manipulate Signal Sets"
.uD
Applications should initialize the value of objects of type
.k sigset_t
before use.
If an object of type
.k sigset_t
is passed to
.f sigaddset ,
.f sigdelset ,
.f sigismember ,
.f sigaction ,
.f sigprocmask,
.f sigpending ,
or
.f sigsuspend
without first being initialized, the outcome is undefined. A random set of
signals may be indicated by the sigset_t object, depending on whatever bit
pattern is in the uninitialized object.
.4 4 "Errors"
.rF
For the
.f sigaddset ,
.f sigdelset ,
and
.f sigismember
functions,
\*(sN
detects
the condition and
does
return the corresponding errno value for
.Pe EINVAL .
.4 2
.uS
If the previous action for
.k sig
had been established by the
.f signal
function, defined in the C Standard, the values of the fields returned in
the structure pointed to by
.k oact
are:
.P
The sa_handler field is either one of the constants SIG_DFL or SIG_IGN, or
the address of the handler function installed by the
.f signal
function.
.P
The other fields contain no information; their value in the current
implementation is zero.
.90 3.3.4.2 "An attempt to set the action for a signal that cannot \
be caught or ignored to SIG_DFL causes an error to be \
returned with errno set to [EINVAL]."
.3 5 "Examine and Change Blocked Signals"
.4 2 "Description"
.uD
On
\*(sN
systems,
if any of the SIGFPE, SIGILL, or SIGSEGV signals are generated while they
are blocked, unless the signal was generated by a call to the
.f kill
function or the
.f raise
function defined by the C Standard, the behaviour is undefined. Applications
should not block these signals.
.3 6 "Examine Pending Signals"
.4 4 "Errors"
.iD
On \*(sN systems,
the following error conditions
are detected for the
.f sigpending
function:
.P
If the argument points to memory that is not a part of the calling process's
valid address space,
.f sigpending
fails, and errno is set to EFAULT.
.90 3.3.6.4 "Change the preceding paragraph to .uS, not .iD."
.2 4 "Timer Operations"
.3 3 "Delay Process Execution"
.4 2 "Description"
.uS
If a SIGALARM signal is generated for the calling process during execution
of the
.f sleep
function, and if the SIGALARM signal is being ignored
or blocked from delivery,
.f sleep
does not
return when the SIGALARM signal is scheduled. If the signal is being
blocked, the signal
remains pending
after the
.f sleep
function returns.
.uS
If a SIGALARM signal is generated for the calling process during execution
of the
.f sleep
function except as a result of a prior call to the
.f alarm
function, and if the SIGALARM signal is not being ignored or blocked from
delivery,
the signal terminates the process.
.uS
If a signal-catching function interrupts the
.f sleep
function and examines or changes the time a SIGALRM is scheduled
to be generated, the action associated with the SIGALRM signal, or
whether the SIGALRM signal is blocked, the changes take effect at the
time the signal handler executes, overriding any previous settings
for SIGALRM.
.uS
If a signal-catching function interrupts the
.f sleep
function
and calls the
.f siglongjmp
or
.f longjmp
function to restore an environment saved prior to the
.f sleep
call, any SIGALRM signal pending from an
.f alarm
call will be delivered at the time specified by the
.alarm
call.
.uS
If a signal-catching function interrupts the
.f sleep
function
and calls the
.f siglongjmp
or
.f longjmp
function to restore an environment saved prior to the
.f sleep
call and the
the process's signal mask is not restored as part of the
environment, the SIGALARM signal
is not
blocked.
.nP
.dM
+177
View File
@@ -0,0 +1,177 @@
'\" pcd/chap04.mm 1.9 99/01/20 (C) Copyright 1999 Silicon Graphics, Inc.
.1 4 "Process Environment"
.2 2 "User Identification"
.3 3 "Get Supplementary Group IDs"
.4 2 "Description"
.uD
The values of array entries with indices larger than or equal to the
value returned by
.f getgroups
are unchanged by the
.f getgroups
call; they retain whatever values were present prior to the call.
.uS
On
\*(sN
systems, the effective group ID of the calling process is
included in
the returned list of supplementary group IDs.
.90 4.2.3.2 "This requirement is absent from the 1992 standard."
.3 4 "Get User Name"
.4 3 "Returns"
.mV
On
\*(sN
systems, the return value from
.f getlogin
points to static data.
.P
.90 4.2.4.1 "This requirement is absent from the 1992 standard."
.4 4 "Errors"
.mV
On
\*(sN
systems,
no
error conditions are detected
for the
.f getlogin
function.
.2 3 "Process Groups"
.3 3 "Set Process Group ID for Job Control"
.4 2 "Description"
.jC
\*(sN
does not define {_POSIX_JOB_CONTROL} and
.oP
it supports the
.f setpgid
function as described in section 4.3.3.2 / the
.f setpgid
function fails.
.oE
.2 4 "System Identification"
.3 1 "System Name"
.4 2 "Description"
.iD
On
\*(sN
systems, the structure
.v utsname
contains the following members:
.P
sysname,
.br
nodename
.br
release
.br
version
.br
machine
.P
Each of these is a character array of size 9 bytes.
The possible values of these are described in the uname(2) manpage.
.4 4 "Errors"
.uS
On
\*(sN
systems,
.f uname
will fail, and set errno to EFAULT, if the name parameter does not point to
a valid area in process address space.
.2 5 "Time"
.3 1 "Get System Time"
.4 4 "Errors"
.uS
On
\*(sN
systems
if the argument to the
.f time
function does not point to a valid area in process address space, a SIGSEGV
signal will be delivered to the calling process.
.3 2 "Process Times"
.4 3 "Returns"
.mV
\*(sN
allows
possible return values from
.f times
to overflow the range of type
.k clock_t.
.4 4 "Errors"
.uS
On
\*(sN
systems,
.f times
will fail, and set errno to EFAULT, if the name parameter does not point to
a valid area in process address space.
.2 6 "Environment Variables"
.3 1 "Environment Access"
.4 3 "Returns"
.mV
On
\*(sN
systems, the return value from
.f getenv
if not null, points to the area on the process stack where the value of the
relevent variable resides. Programs should not make any write references via
the pointer value returned by the
.f getenv
function.
.4 4 "Errors"
.uS
On
\*(sN
systems, no error conditions are detected for the
.f getenv
function.
.2 7 "Terminal Identification"
.3 1 "Generate Terminal Pathname"
.4 3 "Returns"
.mV
If
.f ctermid
is called with a \fBNULL\fP
pointer, the string is generated in a static area.
.4 4 "Errors"
.uS
On
\*(sN
systems,
no
error conditions are detected
for the
.f ctermid
function.
.3 2 "Determine Terminal Device Name"
.4 2 "Description"
.mV
On
\*(sN
systems, the return value of
.f ttyname
points to static data.
.4 4 "Errors"
.uS
On
\*(sN
systems, no error conditions are detected for the
.f ttyname
function.
.uS
No error conditions are detected for the
.f isatty
function.
.2 8 "Configurable System Variables"
.3 1 "Get Configurable System Variables"
.4 2 "Description"
.mV
\*(sN
supports no additional configurable system variables
other than those required by Table 4-2 of
.pN
.nP
.dM
+462
View File
@@ -0,0 +1,462 @@
'\" pcd/chap05.mm 1.9 99/01/20 (C) Copyright 1999 Silicon Graphics, Inc.
.1 5 "Files and Directories"
.2 1 "Directories"
.3 1 "Format of Files and Directories"
.iD
On
\*(sN
systems, the file system used for POSIX cerification is the \fBxfs\fR
filesystem see xfs(4) for details.
.3 2 "Directory Operations"
.4 2 "Description"
.mV
On
\*(sN
systems, the pointer returned by
.f readdir
points to data which
is not
overwritten by another call to
.f readdir
on the same directory
stream.
.mV
On
\*(sN
systems, the
.f readdir
function
buffers several directory entries per actual read operation.
.uS
On
\*(sN
systems,
if a file is removed from or added to the directory after the most recent
call to
.f opendir
or
.f rewinddir ,
a subsequent call to
.f readdir
does not
accurately reflect the contents of the directory.
.mV
On
\*(sN
systems,
.f dir
no longer points
to an accessible object of type
.k DIR
upon return from the
.f closedir
function.
.uD
On
\*(sN
systems, if the
.a dirp
argument passed to any of the file operation functions
does not refer to a currently-open directory stream, the following occurs:
.P
If the
.a dirp
argument had formerly been an open directory stream but has been closed before
the call, the function will return an error result, indicated by -1
and errno will be set to EBADF.
.P
If the
.a dirp
argument points to something other than a directory stream the result of
the function is undefined, and the calling process may be
terminated by bus error or segmentation violation signals.
.uD
On
\*(sN
systems, it is not possible to continue using a directory stream after
one of the
.f exec
family of functions, since the stream handle is not present in the new
process image. Note that the underlying buffering of the stream is discarded
at the time of the
.f exec ,
so no attempt should be made to propagate
the stream handle to the new process image.
.uD
On
\*(sN
systems
if both the parent and child
processes use a combination of the
.f readdir
and
.f rewinddir
functions on a directory stream that was open during
a call to
.f fork ,
both processes may encounter unexpected discontinuities in the order of
entries read by
.f readdir .
Programmers should conform to the POSIX recommendation of using the
directory stream in either the parent or the child, but not both.
.4 4 "Errors"
.rF
For the
.f opendir
function,
\*(sN
detects the conditions and returns the corresponding errno values for
.Pe EMFILE
and
.Pe ENFILE .
.rF
For the
.f readdir
function,
\*(sN
detects the conditions and returns the corresponding errno value for
.Pe EBADF .
.rF
For the
.f closedir
function,
\*(sN
detects the conditions and returns the corresponding errno value for
.Pe EBADF .
.2 2 "Working Directory"
.3 2 "Working Directory Pathname"
.4 2 "Description"
.uD
On
\*(sN
systems, if the argument
.a buf
to
.f getcwd
is a \fBNULL\fP pointer,
.f getcwd
will use
.f malloc
to obtain a buffer of the size specified by the
.a size
argument.
.4 3 "Returns"
.uD
On
\*(sN
systems,
the contents of
.a buf
are unchanged from their previous value
after an error on a call to
.f getcwd .
.4 4 "Errors"
.rF
For the
.f getcwd
function,
\*(sN
detects the conditions and returns the corresponding errno value for
.Pe EACCES .
.2 3 "General File Creation"
.3 1 "Open a File"
.4 2 "Description"
.uD
On
\*(sN
systems, if
O_RDWR is set in
.a oflag ,
when
.a path
refers to a FIFO, the resulting file descriptor may
be used for both writing to, and reading from, the FIFO.
.uS
On
\*(sN
systems, when O_CREAT is set in
.a oflag
and bits in
.a mode
other than the file permission bits are set, bits which do not correspond
to file permission bits are ignored; the system masks them off before using
.a mode .
.uD
On
\*(sN
systems, if O_EXCL is set and O_CREAT is not set in
.a oflag ,
the
.f open
behaves as if O_EXCL were not set; O_EXCL has effect only if
O_CREAT is set.
.uS
On
\*(sN
systems, when O_NONBLOCK is set in
.a oflag
for files other than FIFO's with O_RDONLY or O_WRONLY, block special
files, or character special files, the
.f open
behaves as if O_NONBLOCK
were not set: O_NONBLOCK has no effect on opening of regular files.
.iD
On
\*(sN
systems,
if O_TRUNC is set in
.a oflag
and
.a path
refers to a file type other than a regular file, a
FIFO special file, or a directory, the
.f open
behaves as if O_TRUNC were not set: the O_TRUNC flag has no
effect.
.90 5.3.1.2 "Previous paragraph becomes unspecified instead of impl-def."
.uD
On
\*(sN
systems, setting both O_TRUNC and O_RDONLY in
.a oflag
causes file truncation to occur in the same way as if either O_WRONLY or
O_RDWR were set if the calling process has write permission for the file.
.P
If the calling process does not have write permission for the file, the
.f open
will fail and errno will be set to EACCES.
.3 3 "Set File Creation Mask"
.4 2 "Description"
.iD
On
\*(sN
systems,
bits other than the file permission bits of
.a cmask
are not used and are not set.
.P
The value of these bits in the return from
.f umask
is zero.
.2 4 "Special File Creation"
.3 1 "Make a Directory"
.4 2 "Description"
.iD
On
\*(sN
systems, when bits in the
.a mode
argument to the
.f mkdir
function other than the file permission bits are set,
they are ignored and have no effect on the mode of the created directory.
.mV
A newly-created directory's group ID depends on whether the S_ISGID bit
is set on the parent directory.
If this is set, the new directory's group is set to the group id of the
parent directory; if not, it is set to
the effective group ID of the calling process
.3 2 "Make a FIFO Special File"
.4 2 "Description"
.iD
On
\*(sN
systems, when bits in the
.a mode
argument to the
.f mkfifo
function other than the file permission bits are set,
they have the following effect:
.P
S_ISUID or S_ISGID bits are set in the mode of the resulting FIFO,
but have no effect on subsequent access to, or use of, the FIFO.
.P
If the value of the file type definition group of bits (S_IFMT in <sys/stat.h>)
is other than 0 or S_IFIFO,
.f mkfifo
fails and errno is set to EPERM.
.P
Any other bits in the argument have no effect on the behaviour of the
.f mkfifo
function, or on the mode of the created FIFO.
.P
Applications should not depend on this behaviour, since future versions of
\*(sN
may be modified so that only the permission bits have significance.
.2 5 "File Removal"
.3 2 "Remove a Directory"
.4 1 "Description"
.iD
On
\*(sN
systems, if the directory indicated in the call to
.f rmdir
is the root directory or the current working directory of any process,
.f rmdir
succeeds. Subsequent attempts to use the directory by
the process which was referencing it will fail.
.3 3 "Rename a File"
.4 2 "Description"
.mV
On
\*(sN
systems, in a call to
.c rename "old, new" ,
if the
.a old
argument points to the pathname of a
directory, write access permission
is not
required for the directory named by
.a old ,
nor, if it exists, for the directory named by
.a new .
.2 6 "File Characteristics"
.3 1 "File Characteristics: Header and Data Structure"
If
.k file
is a file type other than a regular file, the
.k st_size
field returned by stat(file, buf) has the following meaning:
.P
If the file is a directory, the
.k st_size
field indicates the directory size in bytes.
.P
For any other file type, this field contains no significant information.
.4 2 "<sys/stat.h> File Modes"
.mV
On
\*(sN
systems,
no other
bits are ORed into S_IRWXU, S_IRWXG, and S_IRWXO.
.4 3 "<sys/stat.h> Time Entries"
.iD
On
\*(sN
systems,
no other
functions in addition to those specified in
.pN
mark for update the time-related fields,
\fIst_atime, st_mtime,\fP or \fIst_ctime\fP, of \fIstruct stat\fP.
.3 2 "Get File Status"
.4 2 "Description"
.3 3 "File Accessibility"
.4 2 "Description "
.mV
On
\*(sN
systems, the
.f access
function
does
indicate success for X_OK if the process has appropriate privileges yet
none of the file's execute permission bits are set.
.4 4 "Errors"
.rF
For the
.f access
function,
\*(sN
detects the conditions and returns the corresponding errno value for
.Pe EINVAL .
.3 4 "Change File Modes"
.4 2 "Description"
.mV
On
\*(sN
systems,
no additional
restrictions cause the S_ISUID and S_ISGID bits in
.f mode
to be ignored.
.iD
On
\*(sN
systems,
.f chmod
has no effect on the file
descriptors for files open at the time of the function call; permission
checking is done only at
.f open
time.
.3 5 "Change Owner and Group of a File"
.4 2 "Description"
.iD
On
\*(sN
systems, if the
.a path
argument to
.f chown
refers to a regular file and
if the call is made by a process with appropriate privileges, the
set-user-ID (S_ISUID) and set-group-ID (S_ISGID) bits of the file mode
are not
cleared upon successful return from
.f chown .
.4 4 "Errors"
.rF
For the
.f chown
function,
\*(sN
detects the conditions and returns the corresponding errno value for
.Pe EINVAL .
.ne 6
.90 5.6.6.2 "Extensions to the utimbuf structure:"
.2 7 "Configurable Pathname Variables"
.3 1 "Get Configurable Pathname Variables"
.4 2 "Description"
.iD
\*(sN
supports no other variables
in addition to the configurable pathname variables
listed in Table 5-2 of
.pN .
.uD
On
\*(sN
systems, if the
.a path
or
.a fildes
parameters to
.f pathconf
or
.f fpathconf
refer to any type of file other than
defined cases involving FIFOs, pipes, directories, or terminal
special devices, the appropriate values for the system are returned.
These values are at present constant for the system and do not depend
on file type. Note that this may change in future releases.
.4 4 "Errors"
.rF
For the
.f pathconf
function,
\*(sN
does
detect the conditions and return the corresponding errno values for
.Pe EINVAL .
.P
No other errors will arise, since in the current system the returned values
do not depend on the value of
.a path .
Note that this may change in future releases.
.rF
For the
.f fpathconf
function,
\*(sN
does
detect the condition and returns the corresponding errno values for
.Pe EINVAL .
No other errors will arise, since in the current system the returned values
do not depend on the value of
.a fildes .
Note that this may change in future releases.
.nP
.dM
+151
View File
@@ -0,0 +1,151 @@
'\" pcd/chap06.mm 1.8 99/01/20 (C) Copyright 1999 Silicon Graphics, Inc.
.1 6 "Input and Output Primitives"
.2 3 "File Descriptor Deassignment
.3 1 "Close a File."
.uS
If the
.f close
function is interrupted by a signal that is to be caught
.k fildes
does not remain usable; further attempts to access it will fail and
set errno to EBADF.
.2 4 "Input and Output"
.3 1 "Read from a File"
.4 2 "Description"
.uD
The value of the file offset associated with a file not capable of
seeking after a call to
.f read
is incremented from its previous value by the number of bytes successfully
read by the
.f read
call. This is not, however, a guaranteed mechanism and programmers are
enjoined against writing code which relies on it.
.mV
On
\*(sN
systems, if a
.f read
is interrupted by a signal, it returns -1 with
.a errno
set to EINTR.
.iD
If the
.a fildes
argument refers to a device special file, subsequent
.f read
requests may return further data if available; however there is no guarantee
that no data will be lost.
.iD
On
\*(sN
systems, it is not possible for the
value of the
.a nbyte
argument to
.f read
to exceed
.Pl INT_MAX ,
since size_t is in fact a signed long: the largest integer type supported.
.90 6.4.1.2 "Use {SSIZE_MAX}, not {INT_MAX}."
.4 4 "Errors"
.uS
On
\*(sN
systems,
an
.Pe EIO
error may be generated in response to hardware errors on the physical device.
.3 2 "Write to a File"
.4 2 "Description"
.iD
On
\*(sN
systems, if the file is not a regular file, when the
.a nbyte
argument is zero,
.f write
succeeds, returning a value of zero. No data is transferred.
.90 6.4.2.2 "The preceding paragraph becomes unspecified, not impl-def."
.uD
The value of the file offset associated with a file not capable of
seeking after a call to
.f write
is incremented from its previous value by the number of bytes successfully
transferred by the
.f write
call. This is not, however, a guaranteed mechanism and programmers are
enjoined against writing code which relies on it.
.mV
On
\*(sN
systems, if a
.f write
is interrupted by a signal, it returns -1 with
.a errno
set to EINTR.
.iD
On
\*(sN
systems, it is not possible for the
value of the
.a nbyte
argument to
.f read
to exceed
.Pl INT_MAX ,
since size_t is in fact a signed long: the largest integer type supported.
.90 6.4.2.2 "Use {SSIZE_MAX}, not {INT_MAX}."
.4 4 "Errors"
.uS
On
\*(sN
systems, for a
.f write
call, an
.Pe EIO
error may be generated in response to hardware errors on the physical device.
.2 5 "Control Operations on Files"
.3 2 "File Control"
.4 2 "Description"
.iD
On
\*(sN
systems, if
.f fcntl
is called with the
.a cmd
argument set to F_SETFL, and if any bits are set in
.a arg
other than those associated with the file status flags,
certain bits will cause changes in file behaviour which are beyond the scope
of POSIX definitions. See the fcntl(2) manpage for details.
.mV
\*(sN
supports advisory record locking
for all file types.
.uD
If the \fIl_len\fP member of the \fIflock\fP structure
is negative when
.f fcntl
is called, the call returns -1 and errno is set to EINVAL.
.4 4 "Errors"
.rF
For the
.f fcntl
function,
\*(sN
detects the conditions and returns the corresponding errno value for
.Pe EDEADLK .
.3 3 "Reposition Read/Write File Offset"
.4 2 "Description"
.iD
On
\*(sN
systems, the
.f lseek
function behaves as follows on devices incapable of seeking:
an offset may be reported and modified. There is no effect on actual data
transfer.
.nP
.dM
+326
View File
@@ -0,0 +1,326 @@
'\" pcd/chap07.mm 1.5 99/01/20 (C) Copyright 1999 Silicon Graphics, Inc.
.1 7 "Device- and Class-Specific Functions" "Device & Class Functions"
.2 1 "General Terminal Interface"
.iD
The
\*(sN
system supports asynchronous ports
using the General Terminal Interface defined in
.pN .
.P
Network connections supporting this interface may also be established by
use of pseudo-tty devices: see the pty(7M) man page.
.rC " (choose appropriate members of the above list; we suggest you also list \
which of these you do not support) "
.3 1 "Interface Characteristics"
.90 7.1.1.2 "It is unspecified whether the terminal has a foreground process \
group when there is no longer any process whose process group ID matches \
the process group ID of the foreground process group, but there is a \
process whose process ID matches."
.4 3 "The Controlling Terminal"
.iD
On
\*(sN
systems,
the controlling terminal for a session is allocated by the session leader
in the following manner:
the first terminal device opened by the process becomes the controlling
terminal for the session, unless the O_NOCTTY flag is given in the
.f open
call.
.iD
On
\*(sN
systems,
if a session leader has no controlling terminal, and opens a terminal
device that is not already associated with a session without using the
O_NOCTTY option, the terminal does
become the controlling terminal of the session leader.
.90 7.1.1.3 "Upon the close of the last file descriptor in the system \
(whether or not it is in the current session) associated with the \
controlling terminal, all processes that had \
the terminal as their controlling terminal (do / do not) cease to have \
any controlling terminal."
.90 7.1.1.3 "A session leader that has lost its controlling terminal \
because all file descriptors associated with that terminal were \
closed can acquire a new controlling terminal by:"
.mV
When the controlling process has terminated, subsequent access
to the terminal by other processes in the earlier session
is denied.
.4 5 "Input Processing and Reading Data"
.mV
\*(sN
does not impose the limit
.Pl MAX_INPUT
on the number of bytes that may be stored in the input queue: buffer memory is
allocated dynamically by the system as needed. However, available memory is
finite, and incoming characters may be discarded if memory cannot be allocated
to buffer them.
Programmers are advised to respect the MAX_INPUT parameter.
.4 6 "Canonical Mode Input Processing"
.iD
.Pl MAX_CANON
is defined for asynchronous tty ports.
.iD
When there are
.Pl MAX_CANON
characters in the input queue for a given terminal device,
\*(sN
discards subsequent input characters.
.4 7 "Non-Canonical Mode Input Processing"
.iD
In
\*(sN
it is not possible for
the MIN member of the \fIc_cc\fP array to be greater than
.Pl MAX_INPUT ,
since it is actually an unsigned char: its max value is thus equal
to {MAX_INPUT} .
.90 7.1.1.7 "The preceding paragraph is undefined, not impl-def."
.4 8 "Writing Data and Output Processing"
.iD
\*(sN
provides a buffering mechanism for writing to a terminal device: a
.f write
call may complete before all of the characters it sends have been physically
transmitted.
.4 9 "Special Characters"
.iD
On
\*(sN
systems, the START and STOP characters
may not
be changed.
.uD
If two or more of the special characters
listed in section 7.1.1.9 of
.pN
have the same value, the behaviour is driver-dependent and may vary from
one version of the system to another. Programmers should avoid creating
this condition.
.90 7.1.1.10 "(unspecified) If modem control and job control are supported, \
and the [EIO] condition specified in 6.4.1.4 exists, read() \
returns ( the EOF condition / -1 with errno set to [EIO] )."
.3 2 "Settable Parameters"
.4 1 "\fItermios\fP Structure"
.mV
On
\*(sN
systems,
in addition to the fields required by
.pN ,
the \fItermios\fP structure includes the field c_line, which specifies
line discipline behaviour. A zero value of this field selects a line
discipline implementing the old system V behaviour; a value of one
(the default) selects the normal job control line discipline.
No other values are currently defined.
.iD
.rC " (enter termios structure size here) "
.90 7.1.2.1 "No mention of the size of struct termios."
.4 2 "Input Modes"
.iD
On
\*(sN
systems, in contexts other than asynchronous serial data transmission, a break
condition is defined as follows:
.P
In the case of pseudo-ttys as described in the pty(7M) man page, a break
condition established on the master side by
.f tcsendbreak
is internally propagated by the system so that the slave side will behave
analogously to an asynchronous terminal receiving a break.
.P
A break condition is not defined for devices other than asynchronous ports
and pseudo-ttys; an attempt to send one with
.f tcsendbreak
will fail and set errno to einval.
.iD
If IXON is set,
\*(sN
transmits a STOP character when the number of bytes in the input queue
reaches a limiting value: currently 256.
.P
A START character is sent when a subsequent
.f read
operation removes any characters from the input queue.
.iD
The initial input control value after
.f open
is ICRNL|IXON|IXANY|BRKINT|IGNPAR|ISTRIP.
.rC "(Supply the value here)"
.4 3 "Output Modes"
.iD
The initial output control value after
.f open
is OPOST|ONLCR|TAB3.
.rC " (insert initial output value) "
.rF
Additional output control values have been defined which are used
when OPOST is set. Refer to the termio(7) man page
for further description of these extensions.
.rC "(insert specific documentation references if possible)"
.4 4 "Control Modes"
.mV
On
\*(sN
systems, if an object for which the control modes are set is not
an asynchronous serial port, the following modes are ignored:
.P
CLOCAL
.br
CREAD
.br
CSIZE
.br
CSTOPB
.br
PARENB
.br
PARODD
.iD
On
\*(sN
systems, the initial hardware control value after
.f open
is CS8|HUPCL|CLOCAL.
.rC " (insert initial control value here) "
.4 5 "Local Modes"
.iD
When ECHOE and ICANON are set, and the ERASE character attempts to erase
when there is no character to erase,
\*(sN
echoes nothing.
.iD
If ECHOK and ICANON are set, the KILL character
causes the terminal to erase the line from the display.
.iD
If IEXTEN is set,
no additional functions are recognized from the input data; IEXTEN is
not currently used.
.iD
IEXTEN being set has no effect on the behaviour of ICANON, ISIG, IXON, or
IXOFF.
.iD
The initial local control value after
.f open
is ISIG|ICANON|ECHO|ECHOK.
.rC " (enter initial control value here) "
.4 6 "Special Control Characters"
.jC
\*(sN
does not support job control and it
.oP
ignores / does not ignore
.oE
the SUSP character value when it is input.
.iD
The number of elements in the \fIcc_c\fP array is 31.
.rC " (insert number of elements here)"
.90 7.1.2.6 "NCCS is unspecified, not impl-def."
.mV
\*(sN
does not support changing the START and STOP
characters, and it
ignores
the character values in the \fIc_cc\fP array indexed by the VSTART and
VSTOP subscripts, when
.f tcsetattr
is called.
.iD
An
\*(sN
terminal when initially opened is always in canonical mode. Non-canonical
mode may be set by appropriate use of the
.f tcsetattr
function.
The initial values of control characters are defined as follows:
.P
.ta .75i
VEOF control 'd' (004)
.br
VEOL 0
.br
VERASE control 'h' (008)
.br
VINTR delete (0177)
.br
VKILL control 'u' (025)
.br
VQUIT control backslash (034)
.br
VSUSP control 'z' (032)
.br
VSTART control(q) (021)
.br
VSTOP control(s) (023)
.4 7 "Baud Rates"
.5 2 "Description"
.iD
On
\*(sN
systems, if an attempt is made to set an unsupported baud rate,
.f cfsetispeed ,
.f cfsetospeed ,
and
.f tcsetattr
return -1 and set errno to EINVAL.
.90 7.1.3.2 "Eliminate tcsetattr() from the list above."
.4 8 "Errors"
.uS
For the
.f cfgetispeed
and
.f cfgetospeed ,
functions,
\*(sN
detects no error conditions.
.P
For the
.f cfsetispeed ,
and
.f cfsetospeed
functions, an invalid speed parameter will cause a return of -1 and set
errno to EINVAL.
.2 2 "General Terminal Interface Control Functions"
.3 2 "Line Control Functions"
.4 2 "Description"
.iD
On
\*(sN
systems,
the parameter
.a duration
to
.f tcsendbreak
is ignored; the function causes transmission of a continuous stream of
zero-valued bits for .25 seconds.
.iD
If a terminal is not using asynchronous serial data transmission, the
.f tcsendbreak
function sends data to generate a break condition only on a pseudo-tty device.
On any other device types, the
.f tcsendbreak
function will fail, and set errno to EINVAL.
.3 3 "Get Foreground Process Group"
.4 2 "Description"
.jC
\*(sN
.oP
supports / does not support
.oE
the
.f tcgetpgrp
function.
.3 4 "Set Foreground Process Group ID"
.4 2 "Description"
.jC
\*(sN
.oP
supports / does not support
.oE
the
.f tcsetpgrp
function.
.nP
.dM
+109
View File
@@ -0,0 +1,109 @@
'\" pcd/chap08.mm 1.5 99/01/20 (C) Copyright 1999 Silicon Graphics, Inc.
.1 8 "Language-Specific Services for the C Programming Language" \
"Language Services for C"
.rF
\*(sN
conforms to C Language Binding (Common Usage C Language-Dependent System
Support).
The semantics of the functions covered by this
.pN
section are the same as those specified in ANSI-C.
.2 1 "Referenced C Language Routines"
.3 1 "Extensions to Time Functions"
.iD
For the
.f setlocale
function,
the default values for the required categories and those categories
specific to
\*(sN
are defined below:
.rN 10
.TS
tab(|), allbox;
cw(2i) cw(2i)
l l .
Category|Default Value
LC_CTYPE|C
LC_COLLATE|C
LC_TIME|C
LC_NUMERIC|C
LC_MONETARY|C
.TE
.iD
If the environment variable corresponding to a specific category is not
set or is set to the empty string, and unless the \fBLANG\fP environment
variable is set and valid,
.f setlocale
defaults to the "C" locale .
.iD
If the \fBLANG\fP environment variable is not set or is set to the empty
string,
\fIsetlocale(category,"")\fP
defaults to the "C" locale .
.2 2 "FILE-Type C Language Functions"
.3 1 "Map a Stream Pointer to a File Descriptor"
.4 4 "Errors"
.iD
On
\*(sN
systems, the
.f fileno
function does not an explicitly detect any errors.
However, if the
.a stream
argument does not point to a valid file stream, the return will be
meaningless and the calling process may experience a segmentation violation.
.90 8.2.1 "Was impl-def; now is unspecified."
.3 2 "Open a Stream on a File Descriptor"
.4 2 "Description"
.iD
On
\*(sN
systems, the
.a type
argument to the
.f fdopen
function contains no additional values.
.4 4 "Errors"
.uS
On
\*(sN
systems, the
.f fdopen
function detects
no errors; however, if the
.a fildes
argument is not a valid file descriptor, errors will occur if any attempt
is made to access the resulting FILE.
.3 3 "Interactions of Other FILE-Type C Functions"
.uD
On
\*(sN
systems, if the active handle ceases to be accessible before the requirements
on the first handle have been met, the file remains accessible via other
handles. However, the effective file position in other handles is
undefined.
.uD
On
\*(sN
systems, for function calls involving two or more file handles,
when the actions are not co-ordinated as described in section
8.2.3 of
.pN ,
processes attempting to access file data sequentially may encounter
unpredicatable discontinuities in the order of the data.
.90 8.3.2.10 "If the stream is opened in append mode or if the O_APPEND \
flag is set as a consequence of dealing with other handles on the file, \
the result of ftell on that stream is:"
.2 3 "Other C Language Functions"
.3 2 "Set Time Zone"
.4 2 "Description"
.iD
On
\*(sN
systems,
if the environment variable \fBTZ\fP is absent, time conversion routines
default to GMT.
.nP
.dM
+65
View File
@@ -0,0 +1,65 @@
'\" pcd/chap09.mm 1.5 99/01/20 (C) Copyright 1999 Silicon Graphics, Inc.
.1 9 "System Databases"
.2 1 "System Databases"
.iD
On
\*(sN
systems,
if the initial working directory field is null, an attempt to log in by that
user fails with a message stating that changing directory to the
null string is not possible.
.uS
The \fIgroup\fP system database contains
the following additional fields:
.br
An encrypted password field. See the group(4) manpage for details.
.uS
On
\*(sN
systems, the \fIuser\fP system database contains
the following additional fields:
.br
An encrypted password field.
.br
A field for the user's real name.
.P
See the passwd(4) man page for details.
.rN 15
.2 2 "Database Access"
.3 1 "Group Database Access"
.4 3 "Returns"
.mV
On
\*(sN
systems, the return values for the
.f getgrgid
and
.f getgrnam
functions point to static data that is overwritten by each call.
.4 4 "Errors"
.uS
For the
.f getgrgid
and
.f getgrnam
functions, no error conditions are detected.
.3 2 "User Database Access"
.4 3 "Returns"
.mV
For the
.f getpwuid
and
.f getpwnam
functions, the return values
point to static data that is overwritten on each call.
.4 4 "Errors"
.uS
On
\*(sN
systems, the
.f getpwuid
and
.f getpwnam
functions detect no error conditions.
.nP
.dM
+126
View File
@@ -0,0 +1,126 @@
'\" pcd/chap10.mm 1.6 99/01/20 (C) Copyright 1999 Silicon Graphics, Inc.
.1 10 "Data Interchange Format"
.2 1 "Archive/Interchange Format"
.iD
On
\*(sN
systems, the \fIformat-reading\fP and \fIformat-creating utilities\fP
are named tar and cpio. See the man pages tar(1) and cpio(1) for information
about these utilities.
.rC "(Give a specific citation to the manual page.)"
.90 10.1 "Frames (blocks) on the media are not specified."
.3 1 "Extended \fItar\fP Format"
.mV
In
\*(sN
the only explicitly illegal character values in file name components
represented in tar archive headers are the slash (/), which is the pathname
component separator; and the null character, which is the string delimiter.
Any other 8 bit character value may in principle be part of a filename.
However, pathnames containing containing
non-printing characters, spaces or tabs, or starting with the minus sign
character will give rise to files which
are difficult or impossible to manipulate with the normal
\*(sN
utilities. For portability, restricting pathnames to printable ASCII
characters is strongly recommended.
.iD
If a file name is found on the medium that would create an invalid file
name on the system, the data from the file
is not stored on the file hierarchy.
The utility ignores such files and prints an error message indicating
that the file is being ignored.
.mV
If the following mode bits that are not
mentioned elsewhere in
.pN
exist in the archive
\*(sN
will behave as indicated below:
.P
If the TSVTX bit is set, this bit will be set in the mode of the extracted
file.
.P
Any other bits apart from those mentioned in
.pN
are ignored.
.uS
If the
.a typeflag
field is set to CHRTYPE, BLKTYPE, or FIFOTYPE, the
.a size
field is ignored.
.uS
On
\*(sN
systems, for character special and block special files
(represented by ASCII digits '3' and '4'), the
.a devmajor
and
.a devminor
fields each contain digits which are a representation, in octal base,
of an eight bit number (from 0 to 255). These numbers are the device
major and minor number respectively.
.3 2 "Extended \fIcpio\fP Format"
.4 1 "Header"
.uS
On
\*(sN
systems, the values of
.a c_dev
contains the device number identifying the device containing a directory
entry for the file, and
.a c_ino
contains the unique inode number identifying the file on that device.
.iD
For character or block special files,
.a c_rdev
contains a number representing the device id of the file, as understood by
\*(sN.
In the current implementation this is a (16 bit) signed short; the more
significant byte is the device major number, and the less significant byte
is the device minor number.
.P
Note that IRIX's cpio has the -K option which can represent the full
32 bit dev_t.
.4 2 "File Name"
.iD
On
\*(sN
systems,
if a file name is found on the medium that would create an invalid file
name, the data from the file is not stored on the file hierarchy, and
an error message will be printed warning that the file is ignored.
.4 4 "Special Entries"
.uS
For special files other than FIFO special files,
directories, and the trailer,
.a c_filesize
has no significance and is ignored.
.4 5 "\fIcpio\fP Values"
.mV
On
\*(sN
systems, other than those file types defined in Table 10-3 of
.pN ,
no further file types are defined for cpio archives:
.3 3 "Multiple Volumes"
.iD
On
\*(sN
systems,
the \fItar\fP and \fIcpio\fP utilities support
multi-volume archives only on actual tape devices, and not on regular
files.
At the end of each partial tape of a multi-volume set, the utilities prompt the
user to insert a new tape.
.P
cpio prompts for a new device name, thus allowing work to continue on a
different device.
.P
tar assumes that the device name has not changed, so succeeding tapes must be
inserted in the same tape derive as the first tape of the archive.
.nP
.dM
+24
View File
@@ -0,0 +1,24 @@
'\" pcd/cover.mm 1.8 99/01/20 (C) Copyright 1999 Silicon Graphics, Inc.
.PH
.PF "''(C) Copyright 1999 \*(cN''"
.sp 2i
.S 18 24
.DS
.ce 8
\fB\l'6i'
.sp
\*(sN
.br
POSIX Conformance Document
.sp
\l'6i'
.sp 2i
\*(DT
.DE
.bp
.DS
.sp 6i
.S 9
\fP\(co 1999 \*(cN All rights reserved.
.DE
.so README.mm
+301
View File
@@ -0,0 +1,301 @@
'\" pcd/pcdmacros 1.8 91/12/09
.de )k
.S 10 12
..
... \" Flags to control the printing of instructions and optional
... \" paragraphs in the POSIX Conformance Document.
...
.ds cN Silicon Graphics, Inc.\" Your company name
.ds sN IRIX\" Your operating system name as a string
.ds iS OFF\" Set to INSTR to print instructions on the various paragraphs
\c\" for the POSIX Conformance Document. Set to OFF to stop
\c\" printing of the instructions.
.ds pV YES\" Set to YES to print the .mV paragraphs, else set to NO
.ds pD YES\" Set to YES to print the .uD paragraphs, else set to NO
.ds pS YES\" Set to YES to print the .uS paragraphs, else set to NO
.ds uL YES\" Set to YES to print .rL and .bL lines , else set to NO
.ds oF YES\" Set to YES to print .oP and .oE macros, else set to NO
.ds jX NO\" Set to YES to print .jC macro (no job control), else NO
.ds pP NO\" Set to YES to print paragraph numbers, else set to NO
.ds cC NO\" Set to YES to print .rC(comment) macro, else set to NO
... \" registers and definitions to control MM macros
.nr Hy 0 \" hyphenation turned off
.ds HF 3 3 3 3 3 3 3 3 \" bold all heads
.ds HP 12 10 10 10 10 10 10 10 \" heading point sizes
.nr Ej 1 \" eject before every .H 1
.nr Hc 1 \" center .H 1
.nr Hu 5 \" default level for .HU
.nr Hb 5 \" break after .H 1-5
.nr Hs 5 \" space after .H 1-5
.nr Cl 2 \" put level 2 headings in contents
.de HZ \" header exit routine: flushes more often
.fl
..
.if n .ds ' ""
.if n .ds ` ""
.if n .ds - "--
.if t .ds ' "''
.if t .ds ` "``
.if t .ds - "\(em
.ds : :\
.de 1 \" begin .H 1. Third arg in line is possible truncated chapter
\c\"title for page headings
.if '\\n(.z'cP' .eP
.ne 11
.PH "''\\\\*(sN POSIX Conformance Document''"
.if \\$1>0 .nr H1 \\$1-1
.if \\w"\\$2" .H 1 "\\$2"
.ie \\w"\\$3" \{\c
.EF "'Page %''\\$1. \\$3'"
.OF "'\\$1. \\$3''Page %'"\}
.el \{\c
.EF "'Page %''\\$1. \\$2'"
.OF "'\\$1. \\$2''Page %'"\}
..
.de 2 \" begin .H 2
.if '\\n(.z'cP' .eP
.ne 2.17i
.if \\$1>0 .nr H2 \\$1-1
.if \\w"\\$2" .H 2 "\\$2"
..
.de 3 \" begin .H 3
.if '\\n(.z'cP' .eP
.ne 1.67i
.if \\$1>0 .nr H3 \\$1-1
.if \\w"\\$2" .H 3 "\\$2"
..
.de 4 \" begin .H 4
.if '\\n(.z'cP' .eP
.ne 1.5i
.if \\$1>0 .nr H4 \\$1-1
.if \\w"\\$2" .H 4 "\\$2"
..
.de 5 \" begin .H 5
.if '\\n(.z'cP' .eP
.ne 1.33i
.if \\$1>0 .nr H5 \\$1-1
.if \\w"\\$2" .H 5 "\\$2"
..
.de #i \" #include <file> .#i includefilename
\&\\$3<\c
.if t .B "\&\\$1"\c
.if n .I "\&\\$1"\c
\|>\\$2
..
... \" most of the macros that follow allow two trailing arguments
... \" that are not shown on the .de line: a CLOSE and an OPEN, e.g.:
... \" .Po _POSIX_SAVED_IDS ) (
... \" produces: (_POSIX_SAVED_IDS)
...
.de Po \" posix option .Po _POSIX_SAVED_IDS --> _POSIX_SAVED_IDS
\c\" .Po _POSIX_SAVED_IDS ) ( --> (_POSIX_SAVED_IDS)
\&\\$3\c
.if t .B "\&\\$1"\c
.if n .B "\&\\$1"\c
\&\^\\$2
..
.de Pl \" posix limit .Pl PATH_MAX prints as {PATH_MAX}
\c\" .Pl PATH_MAX . prints as {PATH_MAX}.
\&{\\$1}\c
\&\^\\$2
..
.de Pe \" posix error .Pe EACCESS prints as [EACCESS]
\c\" .Pe EACCESS . prints as [EACCESS].
\&[\\$1]\c
\&\^\\$2
..
.de f \" function () .f open prints as open()
\c\" .f open . prints as open().
\&\\$3\c
.if t .I "\&\\$1()"\c
.if n .I "\&\\$1()"\c
\&\^\\$2
..
.de c \" call of a function () .c open "path, oflag, mode" -->
\c\" (in italics) open(path, oflag, mode)
\c\" .c open "path, oflag, mode" . -->
\c\" (in italics) open(path, oflag, mode).
.B "\&\\$1(\&\fI\\$2\fB)"\c
\&\^\\$3
..
.de a \" argument .a argument prints as argument
\c\" .a argument . prints as argument.
\&\\$3\c
.if t .I \&\\$1\c
.if n .I \&\\$1\c
\&\^\\$2
..
.de q \" quote .q quote prints as "q"
\c\" .q quote -> prints as "q".
\&\\$3\c
.if t .I "\&\``\\$1\''"\c
.if n .I "\&\"\\$1\""\c
\&\^\\$2
..
.de v \" variable .v variable prints as variable
\c\" .v variable . prints as variable.
\&\\$3\c
.if t .I "\&``\\$1''"\c
.if n .I "\&``\\$1''"\c
\&\^\\$2
..
.de t \" type declaration .t "unsigned long" --> unsigned long
\c\" .v "int" . --> int. (in bold)
\&\\$3\c
.if t .B "\&\\$1"\c
.if n .B "\&\\$1"\c
\&\^\\$2
..
.de k \" keyword .k keyword prints as keyword
\c\" .k keyword . prints as keyword.
\&\\$3\c
.if t \&\kx\\$1\h'|\\nxu+1u'\\$1\c
.if n .B "\&\\$1"\c
\&\^\\$2
..
.de q \" quoted string .q "stuff in quotes" --> `stuff in quotes'
\c\" .q "stuff in quotes" . --> `stuff in quotes'.
\&\\$3`\\$1'\\$2\&\^\\$4
..
.de Q \" C character constant .Q "\n" --> '\n' (in bold)
\c\" .Q "\n" ) ( . --> ('\n'). (in bold)
\&\\$3\c
.B "`\&\\$1'"\c
\&\\$2\&\^\\$4
..
... \" The following macros define the various types of required
... \" or optional paragraphs in the POSIX Conformance Document.
...
.nr Li 0 1
.de eP \" End a diversion for each type of paragraph
.br
.da \" Terminate any diversions in process
.if !'\\*(pT'NOPRINT' \{\c
.nf \"turn off fill mode for printing pass
.if '\\*(pP'YES' \\n+(Li: \&
.cP \" Print the diversion if any were present
.fi\}
.rm cP \" Remove the diversion
..
.em eP
...
.de rP \" A required paragraph
.if '\\n(.z'cP' .eP
.ds pT PRINT
.ne 4
.di cP \" Start the diversion of this paragraph
.if '\\*(iS'INSTR' \{\c
\s-2\fI(Required.)\fR\s0\}
.P
..
.de iD \" An implementation-defined feature - required
.if '\\n(.z'cP' .eP
.ds pT PRINT
.ne 4
.di cP \" Start the diversion of this paragraph
.if '\\*(iS'INSTR' \{\c
\s-2\fI(Required for "implementation-defined" behavior.)\fR\s0\}
.P
..
.de mV \" A paragraph for an "implementations may vary" feature - optional
.if '\\n(.z'cP' .eP
.ie '\\*(pV'YES' .ds pT PRINT
.el .ds pT NOPRINT
.ne 4
.di cP \" Start the diversion of this paragraph
.if '\\*(iS'INSTR' \{\c
\s-2\fI(Recommended for "implementations may vary" \c
behavior.)\fR\s0\}
.P
..
.de uD \" A paragraph for an "undefined" feature - optional
.if '\\n(.z'cP' .eP
.ie '\\*(pD'YES' .ds pT PRINT
.el .ds pT NOPRINT
.ne 4
.di cP \" Start the diversion of this paragraph
.if '\\*(iS'INSTR' \{\c
\s-2\fI(Optional for "undefined" behavior.)\fR\s0\}
.P
..
.de uS \" A paragraph for an "unspecified" feature - optional
.if '\\n(.z'cP' .eP
.ie '\\*(pS'YES' .ds pT PRINT
.el .ds pT NOPRINT
.ne 4
.di cP \" Start the diversion of this paragraph
.if '\\*(iS'INSTR' \{\c
\s-2\fI(Optional for "unspecified" behavior.)\fR\s0\}
.P
..
.de rF \" Required paragraph if feature present/condition exists
.if '\\n(.z'cP' .eP
.ds pT PRINT
.ne 4
.di cP \" Start the diversion of this paragraph
.if '\\*(iS'INSTR' \{\c
\s-2\fI(Required if condition exists.)\fR\s0\}
.P
..
.de jC \"Required if POSIX_JOB_CONTROL not supported
.if '\\n(.z'cP' .eP
.ie '\\*(jX'NO' .ds pT NOPRINT
.el .ds pT PRINT
.ne 4
.di cP
.if '\\*(iS'INSTR' \{\c
\s-2\fI(Present only if _POSIX_JOB_CONTROL not set.)\fR\s0\}
.P
..
.de rL \"Our List -- 3 numbered lines
.if '\\*(uL'YES' \{\c
.if '\\n(.z'cP' .eP
.ne 1i
.AL
.LI
________________________
.LI
________________________
.LI
________________________
.LE\}
..
.de bL\" prints three underscored lines
.if '\\*(uL'YES'\{\c
.if '\\n(.z'cP' .eP
.ne 1i
.ta 0.5i
.sp
\t\l'5i'
.sp
\t\l'5i'
.sp
\t\l'5i'
.br\}
..
.de oP\" prints options in bold two points larger
.if '\\*(oF'YES' \&\fB\s+2
..
.de oE\" returns print and font to prior size and font
.if '\\*(oF'YES' \&\fR\s0
..
.de rN \" our needs request, for use preceding tables
.if '\\n(.z'cP' .eP
.ne (\\$1/6)i
..
.de dM \"dumb diversion macro for end of chapter
.if '\\n(.z'cP' .eP
..
.de pN \" Posix standard name
POSIX.1\c
\&\^\\$1
..
.de rC \" our comment macro
.if '\\*(cC'YES' \{\c
\s-2\fI\\$1\fR\s0\}
..
.de nP \"break page if last page odd
.if o
.bp
..
+2
View File
@@ -0,0 +1,2 @@
'\" pcd/toc.mm 1.4 99/01/20 (C) Copyright 1999 Silicon Graphics, Inc.
.TC 1 1 5 0 "\\*(sN POSIX Conformance Document" "" "Table of Contents"\" (C) 1999 Silicon Graphics, Inc.