1569 lines
74 KiB
HTML
1569 lines
74 KiB
HTML
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
|
|
<html>
|
|
<head>
|
|
<meta name="generator" content="HTML Tidy, see www.w3.org">
|
|
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
|
|
<link type="text/css" rel="stylesheet" href="style.css"><!-- Generated by The Open Group's rhtm tool v1.2.1 -->
|
|
<!-- Copyright (c) 2001 The Open Group, All Rights Reserved -->
|
|
<title>Portability Considerations (Informative)</title>
|
|
</head>
|
|
<body bgcolor="white">
|
|
|
|
<basefont size="3"> <!--header start-->
|
|
<center><font size="2">The Open Group Base Specifications Issue 6<br>
|
|
IEEE Std 1003.1-2001<br>
|
|
Copyright © 2001 The IEEE and The Open Group, All Rights reserved.</font></center>
|
|
|
|
<!--header end-->
|
|
<hr size="2" noshade>
|
|
<h2><a name="tag_04"></a>Portability Considerations (Informative)</h2>
|
|
|
|
<p>This section contains information to satisfy various international requirements:</p>
|
|
|
|
<ul>
|
|
<li>
|
|
<p><a href="#tag_04_01">User Requirements</a> describes perceived user requirements.</p>
|
|
</li>
|
|
|
|
<li>
|
|
<p><a href="#tag_04_02">Portability Capabilities</a> indicates how the facilities of IEEE Std 1003.1-2001 satisfy those
|
|
requirements.</p>
|
|
</li>
|
|
|
|
<li>
|
|
<p><a href="#tag_04_03">Profiling Considerations</a> offers guidance to writers of profiles on how the configurable options,
|
|
limits, and optional behavior of IEEE Std 1003.1-2001 should be cited in profiles.</p>
|
|
</li>
|
|
</ul>
|
|
|
|
<h3><a name="tag_04_01"></a>User Requirements</h3>
|
|
|
|
<p>This section describes the user requirements that were perceived by the developers of IEEE Std 1003.1-2001. The
|
|
primary source for these requirements was an analysis of historical practice in widespread use, as typified by the base documents
|
|
listed in <a href="xbd_chap01.html#tag_01_01_01"><i>Scope</i></a> .</p>
|
|
|
|
<p>IEEE Std 1003.1-2001 addresses the needs of users requiring open systems solutions for source code portability of
|
|
applications. It currently addresses users requiring open systems solutions for source-code portability of applications involving
|
|
multi-programming and process management (creating processes, signaling, and so on); access to files and directories in a hierarchy
|
|
of file systems (opening, reading, writing, deleting files, and so on); access to asynchronous communications ports and other
|
|
special devices; access to information about other users of the system; facilities supporting applications requiring bounded
|
|
(realtime) response.</p>
|
|
|
|
<p>The following users are identified for IEEE Std 1003.1-2001:</p>
|
|
|
|
<ul>
|
|
<li>
|
|
<p>Those employing applications written in high-level languages, such as C, Ada, or FORTRAN.</p>
|
|
</li>
|
|
|
|
<li>
|
|
<p>Users who desire conforming applications that do not necessarily require the characteristics of high-level languages (for
|
|
example, the speed of execution of compiled languages or the relative security of source code intellectual property inherent in the
|
|
compilation process).</p>
|
|
</li>
|
|
|
|
<li>
|
|
<p>Users who desire conforming applications that can be developed quickly and can be modified readily without the use of compilers
|
|
and other system components that may be unavailable on small systems or those without special application development
|
|
capabilities.</p>
|
|
</li>
|
|
|
|
<li>
|
|
<p>Users who interact with a system to achieve general-purpose time-sharing capabilities common to most business or government
|
|
offices or academic environments: editing, filing, inter-user communications, printing, and so on.</p>
|
|
</li>
|
|
|
|
<li>
|
|
<p>Users who develop applications for POSIX-conformant systems.</p>
|
|
</li>
|
|
|
|
<li>
|
|
<p>Users who develop applications for UNIX systems.</p>
|
|
</li>
|
|
</ul>
|
|
|
|
<p>An acknowledged restriction on applicable users is that they are limited to the group of individuals who are familiar with the
|
|
style of interaction characteristic of historically-derived systems based on one of the UNIX operating systems (as opposed to other
|
|
historical systems with different models, such as MS/DOS, Macintosh, VMS, MVS, and so on). Typical users would include program
|
|
developers, engineers, or general-purpose time-sharing users.</p>
|
|
|
|
<p>The requirements of users of IEEE Std 1003.1-2001 can be summarized as a single goal: <i>application source
|
|
portability</i>. The requirements of the user are stated in terms of the requirements of portability of applications. This in turn
|
|
becomes a requirement for a standardized set of syntax and semantics for operations commonly found on many operating systems.</p>
|
|
|
|
<p>The following sections list the perceived requirements for application portability.</p>
|
|
|
|
<h4><a name="tag_04_01_01"></a>Configuration Interrogation</h4>
|
|
|
|
<p>An application must be able to determine whether and how certain optional features are provided and to identify the system upon
|
|
which it is running, so that it may appropriately adapt to its environment.</p>
|
|
|
|
<p>Applications must have sufficient information to adapt to varying behaviors of the system.</p>
|
|
|
|
<h4><a name="tag_04_01_02"></a>Process Management</h4>
|
|
|
|
<p>An application must be able to manage itself, either as a single process or as multiple processes. Applications must be able to
|
|
manage other processes when appropriate.</p>
|
|
|
|
<p>Applications must be able to identify, control, create, and delete processes, and there must be communication of information
|
|
between processes and to and from the system.</p>
|
|
|
|
<p>Applications must be able to use multiple flows of control with a process (threads) and synchronize operations between these
|
|
flows of control.</p>
|
|
|
|
<h4><a name="tag_04_01_03"></a>Access to Data</h4>
|
|
|
|
<p>Applications must be able to operate on the data stored on the system, access it, and transmit it to other applications.
|
|
Information must have protection from unauthorized or accidental access or modification.</p>
|
|
|
|
<h4><a name="tag_04_01_04"></a>Access to the Environment</h4>
|
|
|
|
<p>Applications must be able to access the external environment to communicate their input and results.</p>
|
|
|
|
<h4><a name="tag_04_01_05"></a>Access to Determinism and Performance Enhancements</h4>
|
|
|
|
<p>Applications must have sufficient control of resource allocation to ensure the timeliness of interactions with external
|
|
objects.</p>
|
|
|
|
<h4><a name="tag_04_01_06"></a>Operating System-Dependent Profile</h4>
|
|
|
|
<p>The capabilities of the operating system may make certain optional characteristics of the base language in effect no longer
|
|
optional, and this should be specified.</p>
|
|
|
|
<h4><a name="tag_04_01_07"></a>I/O Interaction</h4>
|
|
|
|
<p>The interaction between the C language I/O subsystem ( <i>stdio</i>) and the I/O subsystem of IEEE Std 1003.1-2001
|
|
must be specified.</p>
|
|
|
|
<h4><a name="tag_04_01_08"></a>Internationalization Interaction</h4>
|
|
|
|
<p>The effects of the environment of IEEE Std 1003.1-2001 on the internationalization facilities of the C language must
|
|
be specified.</p>
|
|
|
|
<h4><a name="tag_04_01_09"></a>C-Language Extensions</h4>
|
|
|
|
<p>Certain functions in the C language must be extended to support the additional capabilities provided by
|
|
IEEE Std 1003.1-2001.</p>
|
|
|
|
<h4><a name="tag_04_01_10"></a>Command Language</h4>
|
|
|
|
<p>Users should be able to define procedures that combine simple tools and/or applications into higher-level components that
|
|
perform to the specific needs of the user. The user should be able to store, recall, use, and modify these procedures. These
|
|
procedures should employ a powerful command language that is used for recurring tasks in conforming applications (scripts) in the
|
|
same way that it is used interactively to accomplish one-time tasks. The language and the utilities that it uses must be consistent
|
|
between systems to reduce errors and retraining.</p>
|
|
|
|
<h4><a name="tag_04_01_11"></a>Interactive Facilities</h4>
|
|
|
|
<p>Use the system to accomplish individual tasks at an interactive terminal. The interface should be consistent, intuitive, and
|
|
offer usability enhancements to increase the productivity of terminal users, reduce errors, and minimize retraining costs. Online
|
|
documentation or usage assistance should be available.</p>
|
|
|
|
<h4><a name="tag_04_01_12"></a>Accomplish Multiple Tasks Simultaneously</h4>
|
|
|
|
<p>Access applications and interactive facilities from a single terminal without requiring serial execution: switch between
|
|
multiple interactive tasks; schedule one-time or periodic background work; display the status of all work in progress or scheduled;
|
|
influence the priority scheduling of work, when authorized.</p>
|
|
|
|
<h4><a name="tag_04_01_13"></a>Complex Data Manipulation</h4>
|
|
|
|
<p>Manipulate data in files in complex ways: sort, merge, compare, translate, edit, format, pattern match, select subsets (strings,
|
|
columns, fields, rows, and so on). These facilities should be available to both conforming applications and interactive users.</p>
|
|
|
|
<h4><a name="tag_04_01_14"></a>File Hierarchy Manipulation</h4>
|
|
|
|
<p>Create, delete, move/rename, copy, backup/archive, and display files and directories. These facilities should be available to
|
|
both conforming applications and interactive users.</p>
|
|
|
|
<h4><a name="tag_04_01_15"></a>Locale Configuration</h4>
|
|
|
|
<p>Customize applications and interactive sessions for the cultural and language conventions of the user. Employ a wide variety of
|
|
standard character encodings. These facilities should be available to both conforming applications and interactive users.</p>
|
|
|
|
<h4><a name="tag_04_01_16"></a>Inter-User Communication</h4>
|
|
|
|
<p>Send messages or transfer files to other users on the same system or other systems on a network. These facilities should be
|
|
available to both conforming applications and interactive users.</p>
|
|
|
|
<h4><a name="tag_04_01_17"></a>System Environment</h4>
|
|
|
|
<p>Display information about the status of the system (activities of users and their interactive and background work, file system
|
|
utilization, system time, configuration, and presence of optional facilities) and the environment of the user (terminal
|
|
characteristics, and so on). Inform the system operator/administrator of problems. Control access to user files and other
|
|
resources.</p>
|
|
|
|
<h4><a name="tag_04_01_18"></a>Printing</h4>
|
|
|
|
<p>Output files on a variety of output device classes, accessing devices on local or network-connected systems. Control (or
|
|
influence) the formatting, priority scheduling, and output distribution of work. These facilities should be available to both
|
|
conforming applications and interactive users.</p>
|
|
|
|
<h4><a name="tag_04_01_19"></a>Software Development</h4>
|
|
|
|
<p>Develop (create and manage source files, compile/interpret, debug) portable open systems applications and package them for
|
|
distribution to, and updating of, other systems.</p>
|
|
|
|
<h3><a name="tag_04_02"></a>Portability Capabilities</h3>
|
|
|
|
<p>This section describes the significant portability capabilities of IEEE Std 1003.1-2001 and indicates how the user
|
|
requirements listed in <a href="#tag_04_01">User Requirements</a> are addressed. The capabilities are listed in the same format as
|
|
the preceding user requirements; they are summarized below:</p>
|
|
|
|
<ul>
|
|
<li>
|
|
<p>Configuration Interrogation</p>
|
|
</li>
|
|
|
|
<li>
|
|
<p>Process Management</p>
|
|
</li>
|
|
|
|
<li>
|
|
<p>Access to Data</p>
|
|
</li>
|
|
|
|
<li>
|
|
<p>Access to the Environment</p>
|
|
</li>
|
|
|
|
<li>
|
|
<p>Access to Determinism and Performance Enhancements</p>
|
|
</li>
|
|
|
|
<li>
|
|
<p>Operating System-Dependent Profile</p>
|
|
</li>
|
|
|
|
<li>
|
|
<p>I/O Interaction</p>
|
|
</li>
|
|
|
|
<li>
|
|
<p>Internationalization Interaction</p>
|
|
</li>
|
|
|
|
<li>
|
|
<p>C-Language Extensions</p>
|
|
</li>
|
|
|
|
<li>
|
|
<p>Command Language</p>
|
|
</li>
|
|
|
|
<li>
|
|
<p>Interactive Facilities</p>
|
|
</li>
|
|
|
|
<li>
|
|
<p>Accomplish Multiple Tasks Simultaneously</p>
|
|
</li>
|
|
|
|
<li>
|
|
<p>Complex Data Manipulation</p>
|
|
</li>
|
|
|
|
<li>
|
|
<p>File Hierarchy Manipulation</p>
|
|
</li>
|
|
|
|
<li>
|
|
<p>Locale Configuration</p>
|
|
</li>
|
|
|
|
<li>
|
|
<p>Inter-User Communication</p>
|
|
</li>
|
|
|
|
<li>
|
|
<p>System Environment</p>
|
|
</li>
|
|
|
|
<li>
|
|
<p>Printing</p>
|
|
</li>
|
|
|
|
<li>
|
|
<p>Software Development</p>
|
|
</li>
|
|
</ul>
|
|
|
|
<h4><a name="tag_04_02_01"></a>Configuration Interrogation</h4>
|
|
|
|
<p>The <a href="../functions/uname.html"><i>uname</i>()</a> operation provides basic identification of the system. The <a href=
|
|
"../functions/sysconf.html"><i>sysconf</i>()</a>, <a href="../functions/pathconf.html"><i>pathconf</i>()</a>, and <a href=
|
|
"../functions/fpathconf.html"><i>fpathconf</i>()</a> functions and the <a href="../utilities/getconf.html"><i>getconf</i></a>
|
|
utility provide means to interrogate the implementation to determine how to adapt to the environment in which it is running. These
|
|
values can be either static (indicating that all instances of the implementation have the same value) or dynamic (indicating that
|
|
different instances of the implementation have the different values, or that the value may vary for other reasons, such as
|
|
reconfiguration).</p>
|
|
|
|
<h5><a name="tag_04_02_01_01"></a>Unsatisfied Requirements</h5>
|
|
|
|
<p>None directly. However, as new areas are added, there will be a need for additional capability in this area.</p>
|
|
|
|
<h4><a name="tag_04_02_02"></a>Process Management</h4>
|
|
|
|
<p>The <a href="../functions/fork.html"><i>fork</i>()</a>, <i>exec</i> family, <a href=
|
|
"../functions/posix_spawn.html"><i>posix_spawn</i>()</a>, and <a href="../functions/posix_spawnp.html"><i>posix_spawnp</i>()</a>
|
|
functions provide for the creation of new processes or the insertion of new applications into existing processes. The <a href=
|
|
"../functions/_Exit.html"><i>_Exit</i>()</a>, <a href="../functions/_exit.html"><i>_exit</i>()</a>, <a href=
|
|
"../functions/exit.html"><i>exit</i>()</a>, and <a href="../functions/abort.html"><i>abort</i>()</a> functions allow for the
|
|
termination of a process by itself. The <a href="../functions/wait.html"><i>wait</i>()</a> and <a href=
|
|
"../functions/waitpid.html"><i>waitpid</i>()</a> functions allow one process to deal with the termination of another.</p>
|
|
|
|
<p>The <a href="../functions/times.html"><i>times</i>()</a> function allows for basic measurement of times used by a process.
|
|
Various functions, including <a href="../functions/fstat.html"><i>fstat</i>()</a>, <a href=
|
|
"../functions/getegid.html"><i>getegid</i>()</a>, <a href="../functions/geteuid.html"><i>geteuid</i>()</a>, <a href=
|
|
"../functions/getgid.html"><i>getgid</i>()</a>, <a href="../functions/getgrgid.html"><i>getgrgid</i>()</a>, <a href=
|
|
"../functions/getgrnam.html"><i>getgrnam</i>()</a>, <a href="../functions/getlogin.html"><i>getlogin</i>()</a>, <a href=
|
|
"../functions/getpid.html"><i>getpid</i>()</a>, <a href="../functions/getppid.html"><i>getppid</i>()</a>, <a href=
|
|
"../functions/getpwnam.html"><i>getpwnam</i>()</a>, <a href="../functions/getpwuid.html"><i>getpwuid</i>()</a>, <a href=
|
|
"../functions/getuid.html"><i>getuid</i>()</a>, <a href="../functions/lstat.html"><i>lstat</i>()</a>, and <a href=
|
|
"../functions/stat.html"><i>stat</i>()</a>, provide for access to the identifiers of processes and the identifiers and names of
|
|
owners of processes (and files).</p>
|
|
|
|
<p>The various functions operating on environment variables provide for communication of information (primarily user-configurable
|
|
defaults) from a parent to child processes.</p>
|
|
|
|
<p>The operations on the current working directory control and interrogate the directory from which relative filename searches
|
|
start. The <a href="../functions/umask.html"><i>umask</i>()</a> function controls the default protections applied to files created
|
|
by the process.</p>
|
|
|
|
<p>The <a href="../functions/alarm.html"><i>alarm</i>()</a>, <a href="../functions/pause.html"><i>pause</i>()</a>, <a href=
|
|
"../functions/sleep.html"><i>sleep</i>()</a>, <a href="../functions/ualarm.html"><i>ualarm</i>()</a>, and <a href=
|
|
"../functions/usleep.html"><i>usleep</i>()</a> operations allow the process to suspend until a timer has expired or to be notified
|
|
when a period of time has elapsed. The <a href="../functions/time.html"><i>time</i>()</a> operation interrogates the current time
|
|
and date.</p>
|
|
|
|
<p>The signal mechanism provides for communication of events either from other processes or from the environment to the
|
|
application, and the means for the application to control the effect of these events. The mechanism provides for external
|
|
termination of a process and for a process to suspend until an event occurs. The mechanism also provides for a value to be
|
|
associated with an event.</p>
|
|
|
|
<p>Job control provides a means to group processes and control them as groups, and to control their access to the function between
|
|
the user and the system (the "controlling terminal"). It also provides the means to suspend and resume processes.</p>
|
|
|
|
<p>The Process Scheduling option provides control of the scheduling and priority of a process.</p>
|
|
|
|
<p>The Message Passing option provides a means for interprocess communication involving small amounts of data.</p>
|
|
|
|
<p>The Memory Management facilities provide control of memory resources and for the sharing of memory. This functionality is
|
|
mandatory on XSI-conformant systems.</p>
|
|
|
|
<p>The Threads facilities provide multiple flows of control with a process (threads), synchronization between threads, association
|
|
of data with threads, and controlled cancelation of threads.</p>
|
|
|
|
<p>The XSI interprocess communications functionality provide an alternate set of facilities to manipulate semaphores, message
|
|
queues, and shared memory. These are provided on XSI-conformant systems to support conforming applications developed to run on UNIX
|
|
systems.</p>
|
|
|
|
<h4><a name="tag_04_02_03"></a>Access to Data</h4>
|
|
|
|
<p>The <a href="../functions/open.html"><i>open</i>()</a>, <a href="../functions/close.html"><i>close</i>()</a>, <a href=
|
|
"../functions/fclose.html"><i>fclose</i>()</a>, <a href="../functions/fopen.html"><i>fopen</i>()</a>, and <a href=
|
|
"../functions/pipe.html"><i>pipe</i>()</a> functions provide for access to files and data. Such files may be regular files,
|
|
interprocess data channels (pipes), or devices. Additional types of objects in the file system are permitted and are being
|
|
contemplated for standardization.</p>
|
|
|
|
<p>The <a href="../functions/access.html"><i>access</i>()</a>, <a href="../functions/chmod.html"><i>chmod</i>()</a>, <a href=
|
|
"../functions/chown.html"><i>chown</i>()</a>, <a href="../functions/dup.html"><i>dup</i>()</a>, <a href=
|
|
"../functions/dup2.html"><i>dup2</i>()</a>, <a href="../functions/fchmod.html"><i>fchmod</i>()</a>, <a href=
|
|
"../functions/fcntl.html"><i>fcntl</i>()</a>, <a href="../functions/fstat.html"><i>fstat</i>()</a>, <a href=
|
|
"../functions/ftruncate.html"><i>ftruncate</i>()</a>, <a href="../functions/lstat.html"><i>lstat</i>()</a>, <a href=
|
|
"../functions/readlink.html"><i>readlink</i>()</a>, <a href="../functions/realpath.html"><i>realpath</i>()</a>, <a href=
|
|
"../functions/stat.html"><i>stat</i>()</a>, and <a href="../functions/utime.html"><i>utime</i>()</a> functions allow for control
|
|
and interrogation of file and file-related objects (including symbolic links), and their ownership, protections, and
|
|
timestamps.</p>
|
|
|
|
<p>The <a href="../functions/fgetc.html"><i>fgetc</i>()</a>, <a href="../functions/fputc.html"><i>fputc</i>()</a>, <a href=
|
|
"../functions/fread.html"><i>fread</i>()</a>, <a href="../functions/fseek.html"><i>fseek</i>()</a>, <a href=
|
|
"../functions/fsetpos.html"><i>fsetpos</i>()</a>, <a href="../functions/fwrite.html"><i>fwrite</i>()</a>, <a href=
|
|
"../functions/getc.html"><i>getc</i>()</a>, <a href="../functions/getchar.html"><i>getchar</i>()</a>, <a href=
|
|
"../functions/lseek.html"><i>lseek</i>()</a>, <a href="../functions/putchar.html"><i>putchar</i>()</a>, <a href=
|
|
"../functions/putc.html"><i>putc</i>()</a>, <a href="../functions/read.html"><i>read</i>()</a>, and <a href=
|
|
"../functions/write.html"><i>write</i>()</a> functions provide for data transfer from the application to files (in all their
|
|
forms).</p>
|
|
|
|
<p>The <a href="../functions/closedir.html"><i>closedir</i>()</a>, <a href="../functions/link.html"><i>link</i>()</a>, <a href=
|
|
"../functions/mkdir.html"><i>mkdir</i>()</a>, <a href="../functions/opendir.html"><i>opendir</i>()</a>, <a href=
|
|
"../functions/readdir.html"><i>readdir</i>()</a>, <a href="../functions/rename.html"><i>rename</i>()</a>, <a href=
|
|
"../functions/rmdir.html"><i>rmdir</i>()</a>, <a href="../functions/rewinddir.html"><i>rewinddir</i>()</a>, and <a href=
|
|
"../functions/unlink.html"><i>unlink</i>()</a> functions provide for a complete set of operations on directories. Directories can
|
|
arbitrarily contain other directories, and a single file can be mentioned in more than one directory.</p>
|
|
|
|
<p>The file-locking mechanism provides for advisory locking (protection during transactions) of ranges of bytes (in effect,
|
|
records) in a file.</p>
|
|
|
|
<p>The <a href="../functions/confstr.html"><i>confstr</i>()</a>, <a href="../functions/fpathconf.html"><i>fpathconf</i>()</a>, <a
|
|
href="../functions/pathconf.html"><i>pathconf</i>()</a>, and <a href="../functions/sysconf.html"><i>sysconf</i>()</a> functions
|
|
provide for enquiry as to the behavior of the system where variability is permitted.</p>
|
|
|
|
<p>The Synchronized Input and Output option provides for assured commitment of data to media.</p>
|
|
|
|
<p>The Asynchronous Input and Output option provides for initiation and control of asynchronous data transfers.</p>
|
|
|
|
<h4><a name="tag_04_02_04"></a>Access to the Environment</h4>
|
|
|
|
<p>The operations and types in the Base Definitions volume of IEEE Std 1003.1-2001, <a href=
|
|
"../basedefs/xbd_chap11.html#tag_11">Chapter 11, General Terminal Interface</a> are provided for access to asynchronous serial
|
|
devices. The primary intended use for these is the controlling terminal for the application (the interaction point between the user
|
|
and the system). They are general enough to be used to control any asynchronous serial device. The functions are also general
|
|
enough to be used with many other device types as a user interface when some emulation is provided.</p>
|
|
|
|
<p>Less detailed access is provided for other device types, but in many instances an application need not know whether an object in
|
|
the file system is a device or a regular file to operate correctly.</p>
|
|
|
|
<h5><a name="tag_04_02_04_01"></a>Unsatisfied Requirements</h5>
|
|
|
|
<p>Detailed control of common device classes, specifically magnetic tape, is not provided.</p>
|
|
|
|
<h4><a name="tag_04_02_05"></a>Bounded (Realtime) Response</h4>
|
|
|
|
<p>The Realtime Signals Extension provides queued signals and the prioritization of the handling of signals. The SCHED_FIFO,
|
|
SCHED_SPORADIC, and SCHED_RR scheduling policies provide control over processor allocation. The Semaphores option provides
|
|
high-performance synchronization. The Memory Management functions provide memory locking for control of memory allocation, file
|
|
mapping for high-performance, and shared memory for high-performance interprocess communication. The Message Passing option
|
|
provides for interprocess communication without being dependent on shared memory.</p>
|
|
|
|
<p>The Timers option provides a high resolution function called <a href="../functions/nanosleep.html"><i>nanosleep</i>()</a> with a
|
|
finer resolution than the <a href="../functions/sleep.html"><i>sleep</i>()</a> function.</p>
|
|
|
|
<p>The Typed Memory Objects option, the Monotonic Clock option, and the Timeouts option provide further facilities for applications
|
|
to use to obtain predictable bounded response.</p>
|
|
|
|
<h4><a name="tag_04_02_06"></a>Operating System-Dependent Profile</h4>
|
|
|
|
<p>IEEE Std 1003.1-2001 makes no distinction between text and binary files. The values of EXIT_SUCCESS and EXIT_FAILURE
|
|
are further defined.</p>
|
|
|
|
<h5><a name="tag_04_02_06_01"></a>Unsatisfied Requirements</h5>
|
|
|
|
<p>None known, but the ISO C standard may contain some additional options that could be specified.</p>
|
|
|
|
<h4><a name="tag_04_02_07"></a>I/O Interaction</h4>
|
|
|
|
<p>IEEE Std 1003.1-2001 defines how each of the ISO C standard <i>stdio</i> functions interact with the POSIX.1
|
|
operations, typically specifying the behavior in terms of POSIX.1 operations.</p>
|
|
|
|
<h5><a name="tag_04_02_07_01"></a>Unsatisfied Requirements</h5>
|
|
|
|
<p>None.</p>
|
|
|
|
<h4><a name="tag_04_02_08"></a>Internationalization Interaction</h4>
|
|
|
|
<p>The IEEE Std 1003.1-2001 environment operations provide a means to define the environment for <a href=
|
|
"../functions/setlocale.html"><i>setlocale</i>()</a> and time functions such as <a href=
|
|
"../functions/ctime.html"><i>ctime</i>()</a>. The <a href="../functions/tzset.html"><i>tzset</i>()</a> function is provided to set
|
|
time conversion information.</p>
|
|
|
|
<p>The <a href="../functions/nl_langinfo.html"><i>nl_langinfo</i>()</a> function is provided as an XSI extension to query
|
|
locale-specific cultural settings.</p>
|
|
|
|
<h5><a name="tag_04_02_08_01"></a>Unsatisfied Requirements</h5>
|
|
|
|
<p>None.</p>
|
|
|
|
<h4><a name="tag_04_02_09"></a>C-Language Extensions</h4>
|
|
|
|
<p>The <a href="../functions/setjmp.html"><i>setjmp</i>()</a> and <a href="../functions/longjmp.html"><i>longjmp</i>()</a>
|
|
functions are not defined to be cognizant of the signal masks defined for POSIX.1. The <a href=
|
|
"../functions/sigsetjmp.html"><i>sigsetjmp</i>()</a> and <a href="../functions/siglongjmp.html"><i>siglongjmp</i>()</a> functions
|
|
are provided to fill this gap.</p>
|
|
|
|
<p>The <a href="../functions/_setjmp.html"><i>_setjmp</i>()</a> and <a href="../functions/_longjmp.html"><i>_longjmp</i>()</a>
|
|
functions are provided as XSI extensions to support historic practice.</p>
|
|
|
|
<h5><a name="tag_04_02_09_01"></a>Unsatisfied Requirements</h5>
|
|
|
|
<p>None.</p>
|
|
|
|
<h4><a name="tag_04_02_10"></a>Command Language</h4>
|
|
|
|
<p>The shell command language, as described in the Shell and Utilities volume of IEEE Std 1003.1-2001, <a href=
|
|
"../utilities/xcu_chap02.html">Chapter 2, Shell Command Language</a>, is a common language useful in batch scripts, through an API
|
|
to high-level languages (for the C-Language Binding option, <a href="../functions/system.html"><i>system</i>()</a> and <a href=
|
|
"../functions/popen.html"><i>popen</i>()</a>) and through an interactive terminal (see the <a href=
|
|
"../utilities/sh.html"><i>sh</i></a> utility). The shell language has many of the characteristics of a high-level language, but it
|
|
has been designed to be more suitable for user terminal entry and includes interactive debugging facilities. Through the use of
|
|
pipelining, many complex commands can be constructed from combinations of data filters and other common components. Shell scripts
|
|
can be created, stored, recalled, and modified by the user with simple editors.</p>
|
|
|
|
<p>In addition to the basic shell language, the following utilities offer features that simplify and enhance programmatic access to
|
|
the utilities and provide features normally found only in high-level languages: <a href=
|
|
"../utilities/basename.html"><i>basename</i></a>, <a href="../utilities/bc.html"><i>bc</i></a>, <a href=
|
|
"../utilities/command.html"><i>command</i></a>, <a href="../utilities/dirname.html"><i>dirname</i></a>, <a href=
|
|
"../utilities/echo.html"><i>echo</i></a>, <a href="../utilities/env.html"><i>env</i></a>, <a href=
|
|
"../utilities/expr.html"><i>expr</i></a>, <a href="../utilities/false.html"><i>false</i></a>, <a href=
|
|
"../utilities/printf.html"><i>printf</i></a>, <a href="../utilities/read.html"><i>read</i></a>, <a href=
|
|
"../utilities/sleep.html"><i>sleep</i></a>, <a href="../utilities/tee.html"><i>tee</i></a>, <a href=
|
|
"../utilities/test.html"><i>test</i></a>, CONVERSION ERROR (.Cm) time *,<a href="#tag_foot_1"><sup><small>1</small></sup></a> <a
|
|
href="../utilities/true.html"><i>true</i></a>, <a href="../utilities/wait.html"><i>wait</i></a>, <a href=
|
|
"../utilities/xargs.html"><i>xargs</i></a>, and all of the special built-in utilities in the Shell and Utilities volume of
|
|
IEEE Std 1003.1-2001, <a href="../utilities/xcu_chap02.html#tag_02_14">Section 2.14, Special Built-In Utilities</a>.</p>
|
|
|
|
<h5><a name="tag_04_02_10_01"></a>Unsatisfied Requirements</h5>
|
|
|
|
<p>None.</p>
|
|
|
|
<h4><a name="tag_04_02_11"></a>Interactive Facilities</h4>
|
|
|
|
<p>The utilities offer a common style of command-line interface through conformance to the Utility Syntax Guidelines (see the Base
|
|
Definitions volume of IEEE Std 1003.1-2001, <a href="../basedefs/xbd_chap12.html#tag_12_02">Section 12.2, Utility Syntax
|
|
Guidelines</a>) and the common utility defaults (see the Shell and Utilities volume of IEEE Std 1003.1-2001, <a href=
|
|
"../utilities/xcu_chap01.html#tag_01_11">Section 1.11, Utility Description Defaults</a>). The <a href=
|
|
"../utilities/sh.html"><i>sh</i></a> utility offers an interactive command-line history and editing facility. The following
|
|
utilities in the User Portability Utilities option have been customized for interactive use: <a href=
|
|
"../utilities/alias.html"><i>alias</i></a>, <a href="../utilities/ex.html"><i>ex</i></a>, <a href=
|
|
"../utilities/fc.html"><i>fc</i></a>, <a href="../utilities/mailx.html"><i>mailx</i></a>, <a href=
|
|
"../utilities/more.html"><i>more</i></a>, <a href="../utilities/talk.html"><i>talk</i></a>, <a href=
|
|
"../utilities/vi.html"><i>vi</i></a>, <a href="../utilities/unalias.html"><i>unalias</i></a>, and <a href=
|
|
"../utilities/write.html"><i>write</i></a>; the <a href="../utilities/man.html"><i>man</i></a> utility offers online access to
|
|
system documentation.</p>
|
|
|
|
<h5><a name="tag_04_02_11_01"></a>Unsatisfied Requirements</h5>
|
|
|
|
<p>The command line interface to individual utilities is as intuitive and consistent as historical practice allows. Work underway
|
|
based on graphical user interfaces may be more suitable for novice or occasional users of the system.</p>
|
|
|
|
<h4><a name="tag_04_02_12"></a>Accomplish Multiple Tasks Simultaneously</h4>
|
|
|
|
<p>The shell command language offers background processing through the asynchronous list command form; see the Shell and Utilities
|
|
volume of IEEE Std 1003.1-2001, <a href="../utilities/xcu_chap02.html#tag_02_09">Section 2.9, Shell Commands</a>. The <a
|
|
href="../utilities/nohup.html"><i>nohup</i></a> utility makes background processing more robust and usable. The <a href=
|
|
"../utilities/kill.html"><i>kill</i></a> utility can terminate background jobs. When the User Portability Utilities option is
|
|
supported, the following utilities allow manipulation of jobs: <a href="../utilities/bg.html"><i>bg</i></a>, <a href=
|
|
"../utilities/fg.html"><i>fg</i></a>, and <a href="../utilities/jobs.html"><i>jobs</i></a>. Also, if the User Portability Utilities
|
|
option is supported, the following can support periodic job scheduling, control, and display: <a href=
|
|
"../utilities/at.html"><i>at</i></a>, <a href="../utilities/batch.html"><i>batch</i></a>, <a href=
|
|
"../utilities/crontab.html"><i>crontab</i></a>, <a href="../utilities/nice.html"><i>nice</i></a>, <a href=
|
|
"../utilities/ps.html"><i>ps</i></a>, and <a href="../utilities/renice.html"><i>renice</i></a>.</p>
|
|
|
|
<h5><a name="tag_04_02_12_01"></a>Unsatisfied Requirements</h5>
|
|
|
|
<p>Terminals with multiple windows may be more suitable for some multi-tasking interactive uses than the job control approach in
|
|
IEEE Std 1003.1-2001. See the comments on graphical user interfaces in <a href="#tag_04_02_11">Interactive Facilities</a>
|
|
. The <a href="../utilities/nice.html"><i>nice</i></a> and <a href="../utilities/renice.html"><i>renice</i></a> utilities do not
|
|
necessarily take advantage of complex system scheduling algorithms that are supported by the realtime options within
|
|
IEEE Std 1003.1-2001.</p>
|
|
|
|
<h4><a name="tag_04_02_13"></a>Complex Data Manipulation</h4>
|
|
|
|
<p>The following utilities address user requirements in this area: <a href="../utilities/asa.html"><i>asa</i></a>, <a href=
|
|
"../utilities/awk.html"><i>awk</i></a>, <a href="../utilities/bc.html"><i>bc</i></a>, <a href=
|
|
"../utilities/cmp.html"><i>cmp</i></a>, <a href="../utilities/comm.html"><i>comm</i></a>, <a href=
|
|
"../utilities/csplit.html"><i>csplit</i></a>*, <a href="../utilities/cut.html"><i>cut</i></a>, <a href=
|
|
"../utilities/dd.html"><i>dd</i></a>, <a href="../utilities/diff.html"><i>diff</i></a>, <a href=
|
|
"../utilities/ed.html"><i>ed</i></a>, <a href="../utilities/ex.html"><i>ex</i></a>*, <a href=
|
|
"../utilities/expand.html"><i>expand</i></a>*, <a href="../utilities/expr.html"><i>expr</i></a>, <a href=
|
|
"../utilities/find.html"><i>find</i></a>, <a href="../utilities/fold.html"><i>fold</i></a>, <a href=
|
|
"../utilities/grep.html"><i>grep</i></a>, <a href="../utilities/head.html"><i>head</i></a>, <a href=
|
|
"../utilities/join.html"><i>join</i></a>, <a href="../utilities/od.html"><i>od</i></a>, <a href=
|
|
"../utilities/paste.html"><i>paste</i></a>, <a href="../utilities/pr.html"><i>pr</i></a>, <a href=
|
|
"../utilities/printf.html"><i>printf</i></a>, <a href="../utilities/sed.html"><i>sed</i></a>, <a href=
|
|
"../utilities/sort.html"><i>sort</i></a>, <a href="../utilities/split.html"><i>split</i></a>*, <a href=
|
|
"../utilities/tabs.html"><i>tabs</i></a>*, <a href="../utilities/tail.html"><i>tail</i></a>, <a href=
|
|
"../utilities/tr.html"><i>tr</i></a>, <a href="../utilities/unexpand.html"><i>unexpand</i></a>*, <a href=
|
|
"../utilities/uniq.html"><i>uniq</i></a>, <a href="../utilities/uudecode.html"><i>uudecode</i></a>*, <a href=
|
|
"../utilities/uuencode.html"><i>uuencode</i></a>*, and <a href="../utilities/wc.html"><i>wc</i></a>.</p>
|
|
|
|
<h5><a name="tag_04_02_13_01"></a>Unsatisfied Requirements</h5>
|
|
|
|
<p>Sophisticated text formatting utilities, such as <i>troff</i> or <i>TeX</i>, are not included. Standards work in the area of
|
|
SGML may satisfy this.</p>
|
|
|
|
<h4><a name="tag_04_02_14"></a>File Hierarchy Manipulation</h4>
|
|
|
|
<p>The following utilities address user requirements in this area: <a href="../utilities/basename.html"><i>basename</i></a>, <a
|
|
href="../utilities/cd.html"><i>cd</i></a>, <a href="../utilities/chgrp.html"><i>chgrp</i></a>, <a href=
|
|
"../utilities/chmod.html"><i>chmod</i></a>, <a href="../utilities/chown.html"><i>chown</i></a>, <a href=
|
|
"../utilities/cksum.html"><i>cksum</i></a>, <a href="../utilities/cp.html"><i>cp</i></a>, <a href=
|
|
"../utilities/dd.html"><i>dd</i></a>, <a href="../utilities/df.html"><i>df</i></a>*, <a href=
|
|
"../utilities/diff.html"><i>diff</i></a>, <a href="../utilities/dirname.html"><i>dirname</i></a>, <a href=
|
|
"../utilities/du.html"><i>du</i></a>*, <a href="../utilities/find.html"><i>find</i></a>, <a href=
|
|
"../utilities/ls.html"><i>ls</i></a>, <a href="../utilities/ln.html"><i>ln</i></a>, <a href=
|
|
"../utilities/mkdir.html"><i>mkdir</i></a>, <a href="../utilities/mkfifo.html"><i>mkfifo</i></a>, <a href=
|
|
"../utilities/mv.html"><i>mv</i></a>, <a href="../utilities/patch.html"><i>patch</i></a>*, <a href=
|
|
"../utilities/pathchk.html"><i>pathchk</i></a>, <a href="../utilities/pax.html"><i>pax</i></a>, <a href=
|
|
"../utilities/pwd.html"><i>pwd</i></a>, <a href="../utilities/rm.html"><i>rm</i></a>, <a href=
|
|
"../utilities/rmdir.html"><i>rmdir</i></a>, <a href="../utilities/test.html"><i>test</i></a>, and <a href=
|
|
"../utilities/touch.html"><i>touch</i></a>.</p>
|
|
|
|
<h5><a name="tag_04_02_14_01"></a>Unsatisfied Requirements</h5>
|
|
|
|
<p>Some graphical user interfaces offer more intuitive file manager components that allow file manipulation through the use of
|
|
icons for novice users.</p>
|
|
|
|
<h4><a name="tag_04_02_15"></a>Locale Configuration</h4>
|
|
|
|
<p>The standard utilities are affected by the various <i>LC_</i> variables to achieve locale-dependent operation: character
|
|
classification, collation sequences, regular expressions and shell pattern matching, date and time formats, numeric formatting, and
|
|
monetary formatting. When the POSIX2_LOCALEDEF option is supported, applications can provide their own locale definition files. The
|
|
following utilities address user requirements in this area: <a href="../utilities/date.html"><i>date</i></a>, <a href=
|
|
"../utilities/ed.html"><i>ed</i></a>, <a href="../utilities/ex.html"><i>ex</i></a>*, <a href=
|
|
"../utilities/find.html"><i>find</i></a>, <a href="../utilities/grep.html"><i>grep</i></a>, <a href=
|
|
"../utilities/locale.html"><i>locale</i></a>, <a href="../utilities/localedef.html"><i>localedef</i></a>, <a href=
|
|
"../utilities/more.html"><i>more</i></a>*, <a href="../utilities/sed.html"><i>sed</i></a>, <a href=
|
|
"../utilities/sh.html"><i>sh</i></a>, <a href="../utilities/sort.html"><i>sort</i></a>, <a href=
|
|
"../utilities/tr.html"><i>tr</i></a>, <a href="../utilities/uniq.html"><i>uniq</i></a>, and <a href=
|
|
"../utilities/vi.html"><i>vi</i></a>*.</p>
|
|
|
|
<p>The <a href="../functions/iconv.html"><i>iconv</i>()</a>, <a href="../functions/iconv_close.html"><i>iconv_close</i>()</a>, and
|
|
<a href="../functions/iconv_open.html"><i>iconv_open</i>()</a> functions are available to allow an application to convert character
|
|
data between supported character sets.</p>
|
|
|
|
<p>The <a href="../utilities/gencat.html"><i>gencat</i></a> utility and the <a href=
|
|
"../functions/catopen.html"><i>catopen</i>()</a>, <a href="../functions/catclose.html"><i>catclose</i>()</a>, and <a href=
|
|
"../functions/catgets.html"><i>catgets</i>()</a> functions for message catalog manipulation are available on XSI-conformant
|
|
systems.</p>
|
|
|
|
<h5><a name="tag_04_02_15_01"></a>Unsatisfied Requirements</h5>
|
|
|
|
<p>Some aspects of multi-byte character and state-encoded character encodings have not yet been addressed. The C-language
|
|
functions, such as <a href="../functions/getopt.html"><i>getopt</i>()</a>, are generally limited to single-byte characters. The
|
|
effect of the <i>LC_MESSAGES</i> variable on message formats is only suggested at this time.</p>
|
|
|
|
<h4><a name="tag_04_02_16"></a>Inter-User Communication</h4>
|
|
|
|
<p>The following utilities address user requirements in this area: <a href="../utilities/cksum.html"><i>cksum</i></a>, <a href=
|
|
"../utilities/mailx.html"><i>mailx</i></a>*, <a href="../utilities/mesg.html"><i>mesg</i></a>*, <a href=
|
|
"../utilities/patch.html"><i>patch</i></a>*, <a href="../utilities/pax.html"><i>pax</i></a>, <a href=
|
|
"../utilities/talk.html"><i>talk</i></a>*, <a href="../utilities/uudecode.html"><i>uudecode</i></a>*, <a href=
|
|
"../utilities/uuencode.html"><i>uuencode</i></a>*, <a href="../utilities/who.html"><i>who</i></a>*, and <a href=
|
|
"../utilities/write.html"><i>write</i></a>*.</p>
|
|
|
|
<p>The historical UUCP utilities are included on XSI-conformant systems.</p>
|
|
|
|
<h5><a name="tag_04_02_16_01"></a>Unsatisfied Requirements</h5>
|
|
|
|
<p>None.</p>
|
|
|
|
<h4><a name="tag_04_02_17"></a>System Environment</h4>
|
|
|
|
<p>The following utilities address user requirements in this area: <a href="../utilities/chgrp.html"><i>chgrp</i></a>, <a href=
|
|
"../utilities/chmod.html"><i>chmod</i></a>, <a href="../utilities/chown.html"><i>chown</i></a>, <a href=
|
|
"../utilities/df.html"><i>df</i></a>*, <a href="../utilities/du.html"><i>du</i></a>*, <a href=
|
|
"../utilities/env.html"><i>env</i></a>, <a href="../utilities/getconf.html"><i>getconf</i></a>, <a href=
|
|
"../utilities/id.html"><i>id</i></a>, <a href="../utilities/logger.html"><i>logger</i></a>, <a href=
|
|
"../utilities/logname.html"><i>logname</i></a>, <a href="../utilities/mesg.html"><i>mesg</i></a>*, <a href=
|
|
"../utilities/newgrp.html"><i>newgrp</i></a>*, <a href="../utilities/ps.html"><i>ps</i></a>*, <a href=
|
|
"../utilities/stty.html"><i>stty</i></a>, <a href="../utilities/tput.html"><i>tput</i></a>*, <a href=
|
|
"../utilities/tty.html"><i>tty</i></a>, <a href="../utilities/umask.html"><i>umask</i></a>, <a href=
|
|
"../utilities/uname.html"><i>uname</i></a>, and <a href="../utilities/who.html"><i>who</i></a>*.</p>
|
|
|
|
<p>The <a href="../functions/closelog.html"><i>closelog</i>()</a>, <a href="../functions/openlog.html"><i>openlog</i>()</a>, <a
|
|
href="../functions/setlogmask.html"><i>setlogmask</i>()</a>, and <a href="../functions/syslog.html"><i>syslog</i>()</a> functions
|
|
provide System Logging facilities on XSI-conformant systems; these are analogous to the <a href=
|
|
"../utilities/logger.html"><i>logger</i></a> utility.</p>
|
|
|
|
<h5><a name="tag_04_02_17_01"></a>Unsatisfied Requirements</h5>
|
|
|
|
<p>None.</p>
|
|
|
|
<h4><a name="tag_04_02_18"></a>Printing</h4>
|
|
|
|
<p>The following utilities address user requirements in this area: <a href="../utilities/pr.html"><i>pr</i></a> and <a href=
|
|
"../utilities/lp.html"><i>lp</i></a>.</p>
|
|
|
|
<h5><a name="tag_04_02_18_01"></a>Unsatisfied Requirements</h5>
|
|
|
|
<p>There are no features to control the formatting or scheduling of the print jobs.</p>
|
|
|
|
<h4><a name="tag_04_02_19"></a>Software Development</h4>
|
|
|
|
<p>The following utilities address user requirements in this area: <a href="../utilities/ar.html"><i>ar</i></a>, <a href=
|
|
"../utilities/asa.html"><i>asa</i></a>, <a href="../utilities/awk.html"><i>awk</i></a>, <a href=
|
|
"../utilities/c99.html"><i>c99</i></a>, <a href="../utilities/ctags.html"><i>ctags</i></a>*, <a href=
|
|
"../utilities/fort77.html"><i>fort77</i></a>, <a href="../utilities/getconf.html"><i>getconf</i></a>, <a href=
|
|
"../utilities/getopts.html"><i>getopts</i></a>, <a href="../utilities/lex.html"><i>lex</i></a>, <a href=
|
|
"../utilities/localedef.html"><i>localedef</i></a>, <a href="../utilities/make.html"><i>make</i></a>, <a href=
|
|
"../utilities/nm.html"><i>nm</i></a>*, <a href="../utilities/od.html"><i>od</i></a>, <a href=
|
|
"../utilities/patch.html"><i>patch</i></a>*, <a href="../utilities/pax.html"><i>pax</i></a>, <a href=
|
|
"../utilities/strings.html"><i>strings</i></a>*, <a href="../utilities/strip.html"><i>strip</i></a>, <a href=
|
|
"../utilities/time.html"><i>time</i></a>*, and <a href="../utilities/yacc.html"><i>yacc</i></a>.</p>
|
|
|
|
<p>The <a href="../functions/system.html"><i>system</i>()</a>, <a href="../functions/popen.html"><i>popen</i>()</a>, <a href=
|
|
"../functions/pclose.html"><i>pclose</i>()</a>, <a href="../functions/regcomp.html"><i>regcomp</i>()</a>, <a href=
|
|
"../functions/regexec.html"><i>regexec</i>()</a>, <a href="../functions/regerror.html"><i>regerror</i>()</a>, <a href=
|
|
"../functions/regfree.html"><i>regfree</i>()</a>, <a href="../functions/fnmatch.html"><i>fnmatch</i>()</a>, <a href=
|
|
"../functions/getopt.html"><i>getopt</i>()</a>, <a href="../functions/glob.html"><i>glob</i>()</a>, <a href=
|
|
"../functions/globfree.html"><i>globfree</i>()</a>, <a href="../functions/wordexp.html"><i>wordexp</i>()</a>, and <a href=
|
|
"../functions/wordfree.html"><i>wordfree</i>()</a> functions allow C-language programmers to access some of the interfaces used by
|
|
the utilities, such as argument processing, regular expressions, and pattern matching.</p>
|
|
|
|
<p>The SCCS source-code control system utilities are available on systems supporting the XSI Development option.</p>
|
|
|
|
<h5><a name="tag_04_02_19_01"></a>Unsatisfied Requirements</h5>
|
|
|
|
<p>There are no language-specific development tools related to languages other than C and FORTRAN. The C tools are more complete
|
|
and varied than the FORTRAN tools. There is no data dictionary or other CASE-like development tools.</p>
|
|
|
|
<h4><a name="tag_04_02_20"></a>Future Growth</h4>
|
|
|
|
<p>It is arguable whether or not all functionality to support applications is potentially within the scope of
|
|
IEEE Std 1003.1-2001. As a simple matter of practicality, it cannot be. Areas such as graphics, application
|
|
domain-specific functionality, windowing, and so on, should be in unique standards. As such, they are properly "Unsatisfied
|
|
Requirements" in terms of providing fully conforming applications, but ones which are outside the scope of
|
|
IEEE Std 1003.1-2001.</p>
|
|
|
|
<p>However, as the standards evolve, certain functionality once considered "exotic" enough to be part of a separate standard
|
|
become common enough to be included in a core standard such as this. Realtime and networking, for example, have both moved from
|
|
separate standards (with much difficult cross-referencing) into IEEE Std 1003.1 over time, and although no specific areas
|
|
have been identified for inclusion in future revisions, such inclusions seem likely.</p>
|
|
|
|
<h3><a name="tag_04_03"></a>Profiling Considerations</h3>
|
|
|
|
<p>This section offers guidance to writers of profiles on how the configurable options, limits, and optional behavior of
|
|
IEEE Std 1003.1-2001 should be cited in profiles. Profile writers should consult the general guidance in POSIX.0 when
|
|
writing POSIX Standardized Profiles.</p>
|
|
|
|
<p>The information in this section is an inclusive list of features that should be considered by profile writers. Subsetting of
|
|
IEEE Std 1003.1-2001 should follow the Base Definitions volume of IEEE Std 1003.1-2001, <a href=
|
|
"../basedefs/xbd_chap02.html#tag_02_01_05_01">Section 2.1.5.1, Subprofiling Considerations</a>. A set of profiling options is
|
|
described in <a href="subprofiles.html#tag_05"><i>Subprofiling Considerations (Informative)</i></a> .</p>
|
|
|
|
<h4><a name="tag_04_03_01"></a>Configuration Options</h4>
|
|
|
|
<p>There are two set of options suggested by IEEE Std 1003.1-2001: those for POSIX-conforming systems and those for
|
|
X/Open System Interface (XSI) conformance. The requirements for XSI conformance are documented in the Base Definitions volume of
|
|
IEEE Std 1003.1-2001 and not discussed further here, as they superset the POSIX conformance requirements.</p>
|
|
|
|
<h4><a name="tag_04_03_02"></a>Configuration Options (Shell and Utilities)</h4>
|
|
|
|
<p>There are three broad optional configurations for the Shell and Utilities volume of IEEE Std 1003.1-2001: basic
|
|
execution system, development system, and user portability interactive system. The options to support these, and other minor
|
|
configuration options, are listed in the Base Definitions volume of IEEE Std 1003.1-2001, <a href=
|
|
"../basedefs/xbd_chap02.html#tag_02">Chapter 2, Conformance</a>. Profile writers should consult the following list and the comments
|
|
concerning user requirements addressed by various components in <a href="#tag_04_02">Portability Capabilities</a> .</p>
|
|
|
|
<dl compact>
|
|
<dt>POSIX2_UPE</dt>
|
|
|
|
<dd><br>
|
|
The system supports the User Portability Utilities option.
|
|
|
|
<p>This option is a requirement for a user portability interactive system. It is required frequently except for those systems, such
|
|
as embedded realtime or dedicated application systems, that support little or no interactive time-sharing work by users or
|
|
operators. XSI-conformant systems support this option.</p>
|
|
</dd>
|
|
|
|
<dt>POSIX2_SW_DEV</dt>
|
|
|
|
<dd><br>
|
|
The system supports the Software Development Utilities option.
|
|
|
|
<p>This option is required by many systems, even those in which actual software development does not occur. The <a href=
|
|
"../utilities/make.html"><i>make</i></a> utility, in particular, is required by many application software packages as they are
|
|
installed onto the system. If POSIX2_C_DEV is supported, POSIX2_SW_DEV is almost a mandatory requirement because of <a href=
|
|
"../utilities/ar.html"><i>ar</i></a> and <a href="../utilities/make.html"><i>make</i></a>.</p>
|
|
</dd>
|
|
|
|
<dt>POSIX2_C_BIND</dt>
|
|
|
|
<dd><br>
|
|
The system supports the C-Language Bindings option.
|
|
|
|
<p>This option is required on some implementations developing complex C applications or on any system installing C applications in
|
|
source form that require the functions in this option. The <a href="../functions/system.html"><i>system</i>()</a> and <a href=
|
|
"../functions/popen.html"><i>popen</i>()</a> functions, in particular, are widely used by applications; the others are rather more
|
|
specialized.</p>
|
|
</dd>
|
|
|
|
<dt>POSIX2_C_DEV</dt>
|
|
|
|
<dd><br>
|
|
The system supports the C-Language Development Utilities option.
|
|
|
|
<p>This option is required by many systems, even those in which actual C-language software development does not occur. The <a href=
|
|
"../utilities/c99.html"><i>c99</i></a> utility, in particular, is required by many application software packages as they are
|
|
installed onto the system. The <a href="../utilities/lex.html"><i>lex</i></a> and <a href="../utilities/yacc.html"><i>yacc</i></a>
|
|
utilities are used less frequently.</p>
|
|
</dd>
|
|
|
|
<dt>POSIX2_FORT_DEV</dt>
|
|
|
|
<dd><br>
|
|
The system supports the FORTRAN Development Utilities option
|
|
|
|
<p>As with C, this option is needed on any system developing or installing FORTRAN applications in source form.</p>
|
|
</dd>
|
|
|
|
<dt>POSIX2_FORT_RUN</dt>
|
|
|
|
<dd><br>
|
|
The system supports the FORTRAN Runtime Utilities option.
|
|
|
|
<p>This option is required for some FORTRAN applications that need the <a href="../utilities/asa.html"><i>asa</i></a> utility to
|
|
convert Hollerith printing statement output. It is unknown how frequently this occurs.</p>
|
|
</dd>
|
|
|
|
<dt>POSIX2_LOCALEDEF</dt>
|
|
|
|
<dd><br>
|
|
The system supports the creation of locales.
|
|
|
|
<p>This option is needed if applications require their own customized locale definitions to operate. It is presently unknown
|
|
whether many applications are dependent on this. However, the option is virtually mandatory for systems in which internationalized
|
|
applications are developed.</p>
|
|
|
|
<p>XSI-conformant systems support this option.</p>
|
|
</dd>
|
|
|
|
<dt>POSIX2_PBS</dt>
|
|
|
|
<dd><br>
|
|
The system supports the Batch Environment option.</dd>
|
|
|
|
<dt>POSIX2_PBS_ACCOUNTING</dt>
|
|
|
|
<dd><br>
|
|
The system supports the optional feature of accounting within the Batch Environment option. It will be required in servers that
|
|
implement the optional feature of accounting.</dd>
|
|
|
|
<dt>POSIX2_PBS_CHECKPOINT</dt>
|
|
|
|
<dd><br>
|
|
The system supports the optional feature of checkpoint/restart within the Batch Environment option.</dd>
|
|
|
|
<dt>POSIX2_PBS_LOCATE</dt>
|
|
|
|
<dd><br>
|
|
The system supports the optional feature of locating batch jobs within the Batch Environment option.</dd>
|
|
|
|
<dt>POSIX2_PBS_MESSAGE</dt>
|
|
|
|
<dd><br>
|
|
The system supports the optional feature of sending messages to batch jobs within the Batch Environment option.</dd>
|
|
|
|
<dt>POSIX2_PBS_TRACK</dt>
|
|
|
|
<dd><br>
|
|
The system supports the optional feature of tracking batch jobs within the Batch Environment option.</dd>
|
|
|
|
<dt>POSIX2_CHAR_TERM</dt>
|
|
|
|
<dd><br>
|
|
The system supports at least one terminal type capable of all operations described in IEEE Std 1003.1-2001.
|
|
|
|
<p>On systems with POSIX2_UPE, this option is almost always required. It was developed solely to allow certain specialized vendors
|
|
and user applications to bypass the requirement for general-purpose asynchronous terminal support. For example, an application and
|
|
system that was suitable for block-mode terminals, such as IBM 3270s, would not need this option.</p>
|
|
|
|
<p>XSI-conformant systems support this option.</p>
|
|
</dd>
|
|
</dl>
|
|
|
|
<h4><a name="tag_04_03_03"></a>Configurable Limits</h4>
|
|
|
|
<p>Very few of the limits need to be increased for profiles. No profile can cite lower values.</p>
|
|
|
|
<dl compact>
|
|
<dt>{POSIX2_BC_BASE_MAX}</dt>
|
|
|
|
<dt>{POSIX2_BC_DIM_MAX}</dt>
|
|
|
|
<dt>{POSIX2_BC_SCALE_MAX}</dt>
|
|
|
|
<dt>{POSIX2_BC_STRING_MAX}</dt>
|
|
|
|
<dd><br>
|
|
No increase is anticipated for any of these <a href="../utilities/bc.html"><i>bc</i></a> values, except for very specialized
|
|
applications involving huge numbers.</dd>
|
|
|
|
<dt>{POSIX2_COLL_WEIGHTS_MAX}</dt>
|
|
|
|
<dd><br>
|
|
Some natural languages with complex collation requirements require an increase from the default 2 to 4; no higher numbers are
|
|
anticipated.</dd>
|
|
|
|
<dt>{POSIX2_EXPR_NEST_MAX}</dt>
|
|
|
|
<dd><br>
|
|
No increase is anticipated.</dd>
|
|
|
|
<dt>{POSIX2_LINE_MAX}</dt>
|
|
|
|
<dd><br>
|
|
This number is much larger than most historical applications have been able to use. At some future time, applications may be
|
|
rewritten to take advantage of even larger values.</dd>
|
|
|
|
<dt>{POSIX2_RE_DUP_MAX}</dt>
|
|
|
|
<dd><br>
|
|
No increase is anticipated.</dd>
|
|
|
|
<dt>{POSIX2_VERSION}</dt>
|
|
|
|
<dd><br>
|
|
This is actually not a limit, but a standard version stamp. Generally, a profile should specify the Shell and Utilities volume of
|
|
IEEE Std 1003.1-2001, <a href="../utilities/xcu_chap02.html">Chapter 2, Shell Command Language</a> by name in the
|
|
normative references section, not this value.</dd>
|
|
</dl>
|
|
|
|
<h4><a name="tag_04_03_04"></a>Configuration Options (System Interfaces)</h4>
|
|
|
|
<dl compact>
|
|
<dt>{NGROUPS_MAX}</dt>
|
|
|
|
<dd><br>
|
|
A non-zero value indicates that the implementation supports supplementary groups.
|
|
|
|
<p>This option is needed where there is a large amount of shared use of files, but where a certain amount of protection is needed.
|
|
Many profiles<a href="#tag_foot_2"><sup><small>2</small></sup></a> are known to require this option; it should only be required if
|
|
needed, but it should never be prohibited.</p>
|
|
</dd>
|
|
|
|
<dt>_POSIX_ADVISORY_INFO</dt>
|
|
|
|
<dd><br>
|
|
The system provides advisory information for file management.
|
|
|
|
<p>This option allows the application to specify advisory information that can be used to achieve better or even deterministic
|
|
response time in file manager or input and output operations.</p>
|
|
</dd>
|
|
|
|
<dt>_POSIX_ASYNCHRONOUS_IO</dt>
|
|
|
|
<dd><br>
|
|
The system provides concurrent process execution and input and output transfers.
|
|
|
|
<p>This option was created to support historical systems that did not provide the feature. It should only be required if needed,
|
|
but it should never be prohibited.</p>
|
|
</dd>
|
|
|
|
<dt>_POSIX_BARRIERS</dt>
|
|
|
|
<dd><br>
|
|
The system supports barrier synchronization.
|
|
|
|
<p>This option was created to allow efficient synchronization of multiple parallel threads in multi-processor systems in which the
|
|
operation is supported in part by the hardware architecture.</p>
|
|
</dd>
|
|
|
|
<dt>_POSIX_CHOWN_RESTRICTED</dt>
|
|
|
|
<dd><br>
|
|
The system restricts the right to "give away" files to other users.
|
|
|
|
<p>This option should be carefully investigated before it is required. Some applications expect that they can change the ownership
|
|
of files in this way. It is provided where either security or system account requirements cause this ability to be a problem. It is
|
|
also known to be specified in many profiles.</p>
|
|
</dd>
|
|
|
|
<dt>_POSIX_CLOCK_SELECTION</dt>
|
|
|
|
<dd><br>
|
|
The system supports the Clock Selection option.
|
|
|
|
<p>This option allows applications to request a high resolution sleep in order to suspend a thread during a relative time interval,
|
|
or until an absolute time value, using the desired clock. It also allows the application to select the clock used in a <a href=
|
|
"../functions/pthread_cond_timedwait.html"><i>pthread_cond_timedwait</i>()</a> function call.</p>
|
|
</dd>
|
|
|
|
<dt>_POSIX_CPUTIME</dt>
|
|
|
|
<dd><br>
|
|
The system supports the Process CPU-Time Clocks option.
|
|
|
|
<p>This option allows applications to use a new clock that measures the execution times of processes or threads, and the
|
|
possibility to create timers based upon these clocks, for runtime detection (and treatment) of execution time overruns.</p>
|
|
</dd>
|
|
|
|
<dt>_POSIX_FSYNC</dt>
|
|
|
|
<dd><br>
|
|
The system supports file synchronization requests.
|
|
|
|
<p>This option was created to support historical systems that did not provide the feature. Applications that are expecting
|
|
guaranteed completion of their input and output operations should require the _POSIX_SYNC_IO option. This option should never be
|
|
prohibited.</p>
|
|
|
|
<p>XSI-conformant systems support this option.</p>
|
|
</dd>
|
|
|
|
<dt>_POSIX_IPV6</dt>
|
|
|
|
<dd><br>
|
|
The system supports facilities related to Internet Protocol Version 6 (IPv6).
|
|
|
|
<p>This option was created to allow systems to transition to IPv6.</p>
|
|
</dd>
|
|
|
|
<dt>_POSIX_JOB_CONTROL</dt>
|
|
|
|
<dd><br>
|
|
Job control facilities are mandatory in IEEE Std 1003.1-2001.
|
|
|
|
<p>The option was created primarily to support historical systems that did not provide the feature. Many existing profiles now
|
|
require it; it should only be required if needed, but it should never be prohibited. Most applications that use it can run when it
|
|
is not present, although with a degraded level of user convenience.</p>
|
|
</dd>
|
|
|
|
<dt>_POSIX_MAPPED_FILES</dt>
|
|
|
|
<dd><br>
|
|
The system supports the mapping of regular files into the process address space.
|
|
|
|
<p>XSI-conformant systems support this option.</p>
|
|
|
|
<p>Both this option and the Shared Memory Objects option provide shared access to memory objects in the process address space. The
|
|
functions defined under this option provide the functionality of existing practice for mapping regular files. This functionality
|
|
was deemed unnecessary, if not inappropriate, for embedded systems applications and, hence, is provided under this option. It
|
|
should only be required if needed, but it should never be prohibited.</p>
|
|
</dd>
|
|
|
|
<dt>_POSIX_MEMLOCK</dt>
|
|
|
|
<dd><br>
|
|
The system supports the locking of the address space.
|
|
|
|
<p>This option was created to support historical systems that did not provide the feature. It should only be required if needed,
|
|
but it should never be prohibited.</p>
|
|
</dd>
|
|
|
|
<dt>_POSIX_MEMLOCK_RANGE</dt>
|
|
|
|
<dd><br>
|
|
The system supports the locking of specific ranges of the address space.
|
|
|
|
<p>For applications that have well-defined sections that need to be locked and others that do not, IEEE Std 1003.1-2001
|
|
supports an optional set of functions to lock or unlock a range of process addresses. The following are two reasons for having a
|
|
means to lock down a specific range:</p>
|
|
|
|
<ol>
|
|
<li>
|
|
<p>An asynchronous event handler function that must respond to external events in a deterministic manner such that page faults
|
|
cannot be tolerated</p>
|
|
</li>
|
|
|
|
<li>
|
|
<p>An input/output "buffer" area that is the target for direct-to-process I/O, and the overhead of implicit locking and unlocking
|
|
for each I/O call cannot be tolerated</p>
|
|
</li>
|
|
</ol>
|
|
|
|
<p>It should only be required if needed, but it should never be prohibited.</p>
|
|
</dd>
|
|
|
|
<dt>_POSIX_MEMORY_PROTECTION</dt>
|
|
|
|
<dd><br>
|
|
The system supports memory protection.
|
|
|
|
<p>XSI-conformant systems support this option.</p>
|
|
|
|
<p>The provision of this option typically imposes additional hardware requirements. It should never be prohibited.</p>
|
|
</dd>
|
|
|
|
<dt>_POSIX_PRIORITIZED_IO</dt>
|
|
|
|
<dd><br>
|
|
The system provides prioritization for input and output operations.
|
|
|
|
<p>The use of this option may interfere with the ability of the system to optimize input and output throughput. It should only be
|
|
required if needed, but it should never be prohibited.</p>
|
|
</dd>
|
|
|
|
<dt>_POSIX_MESSAGE_PASSING</dt>
|
|
|
|
<dd><br>
|
|
The system supports the passing of messages between processes.
|
|
|
|
<p>This option was created to support historical systems that did not provide the feature. The functionality adds a
|
|
high-performance XSI interprocess communication facility for local communication. It should only be required if needed, but it
|
|
should never be prohibited.</p>
|
|
</dd>
|
|
|
|
<dt>_POSIX_MONOTONIC_CLOCK</dt>
|
|
|
|
<dd><br>
|
|
The system supports the Monotonic Clock option.
|
|
|
|
<p>This option allows realtime applications to rely on a monotonically increasing clock that does not jump backwards, and whose
|
|
value does not change except for the regular ticking of the clock.</p>
|
|
</dd>
|
|
|
|
<dt>_POSIX_PRIORITY_SCHEDULING</dt>
|
|
|
|
<dd><br>
|
|
The system provides priority-based process scheduling.
|
|
|
|
<p>Support of this option provides predictable scheduling behavior, allowing applications to determine the order in which processes
|
|
that are ready to run are granted access to a processor. It should only be required if needed, but it should never be
|
|
prohibited.</p>
|
|
</dd>
|
|
|
|
<dt>_POSIX_REALTIME_SIGNALS</dt>
|
|
|
|
<dd><br>
|
|
The system provides prioritized, queued signals with associated data values.
|
|
|
|
<p>This option was created to support historical systems that did not provide the features. It should only be required if needed,
|
|
but it should never be prohibited.</p>
|
|
</dd>
|
|
|
|
<dt>_POSIX_REGEXP</dt>
|
|
|
|
<dd><br>
|
|
Support for regular expression facilities is mandatory in IEEE Std 1003.1-2001.</dd>
|
|
|
|
<dt>_POSIX_SAVED_IDS</dt>
|
|
|
|
<dd><br>
|
|
Support for this feature is mandatory in IEEE Std 1003.1-2001.
|
|
|
|
<p>Certain classes of applications rely on it for proper operation, and there is no alternative short of giving the application
|
|
root privileges on most implementations that did not provide _POSIX_SAVED_IDS.</p>
|
|
</dd>
|
|
|
|
<dt>_POSIX_SEMAPHORES</dt>
|
|
|
|
<dd><br>
|
|
The system provides counting semaphores.
|
|
|
|
<p>This option was created to support historical systems that did not provide the feature. It should only be required if needed,
|
|
but it should never be prohibited.</p>
|
|
</dd>
|
|
|
|
<dt>_POSIX_SHARED_MEMORY_OBJECTS</dt>
|
|
|
|
<dd><br>
|
|
The system supports the mapping of shared memory objects into the process address space.
|
|
|
|
<p>Both this option and the Memory Mapped Files option provide shared access to memory objects in the process address space. The
|
|
functions defined under this option provide the functionality of existing practice for shared memory objects. This functionality
|
|
was deemed appropriate for embedded systems applications and, hence, is provided under this option. It should only be required if
|
|
needed, but it should never be prohibited.</p>
|
|
</dd>
|
|
|
|
<dt>_POSIX_SHELL</dt>
|
|
|
|
<dd><br>
|
|
Support for the <a href="../utilities/sh.html"><i>sh</i></a> utility command line interpreter is mandatory in
|
|
IEEE Std 1003.1-2001.</dd>
|
|
|
|
<dt>_POSIX_SPAWN</dt>
|
|
|
|
<dd><br>
|
|
The system supports the spawn option.
|
|
|
|
<p>This option provides applications with an efficient mechanism to spawn execution of a new process.</p>
|
|
</dd>
|
|
|
|
<dt>_POSIX_SPINLOCKS</dt>
|
|
|
|
<dd><br>
|
|
The system supports spin locks.
|
|
|
|
<p>This option was created to support a simple and efficient synchronization mechanism for threads executing in multi-processor
|
|
systems.</p>
|
|
</dd>
|
|
|
|
<dt>_POSIX_SPORADIC_SERVER</dt>
|
|
|
|
<dd><br>
|
|
The system supports the sporadic server scheduling policy.
|
|
|
|
<p>This option provides applications with a new scheduling policy for scheduling aperiodic processes or threads in hard realtime
|
|
applications.</p>
|
|
</dd>
|
|
|
|
<dt>_POSIX_SYNCHRONIZED_IO</dt>
|
|
|
|
<dd><br>
|
|
The system supports guaranteed file synchronization.
|
|
|
|
<p>This option was created to support historical systems that did not provide the feature. Applications that are expecting
|
|
guaranteed completion of their input and output operations should require this option, rather than the File Synchronization option.
|
|
It should only be required if needed, but it should never be prohibited.</p>
|
|
</dd>
|
|
|
|
<dt>_POSIX_THREADS</dt>
|
|
|
|
<dd><br>
|
|
The system supports multiple threads of control within a single process.
|
|
|
|
<p>This option was created to support historical systems that did not provide the feature. Applications written assuming a
|
|
multi-threaded environment would be expected to require this option. It should only be required if needed, but it should never be
|
|
prohibited.</p>
|
|
|
|
<p>XSI-conformant systems support this option.</p>
|
|
</dd>
|
|
|
|
<dt>_POSIX_THREAD_ATTR_STACKADDR</dt>
|
|
|
|
<dd><br>
|
|
The system supports specification of the stack address for a created thread.
|
|
|
|
<p>Applications may take advantage of support of this option for performance benefits, but dependence on this feature should be
|
|
minimized. This option should never be prohibited.</p>
|
|
|
|
<p>XSI-conformant systems support this option.</p>
|
|
</dd>
|
|
|
|
<dt>_POSIX_THREAD_ATTR_STACKSIZE</dt>
|
|
|
|
<dd><br>
|
|
The system supports specification of the stack size for a created thread.
|
|
|
|
<p>Applications may require this option in order to ensure proper execution, but such usage limits portability and dependence on
|
|
this feature should be minimized. It should only be required if needed, but it should never be prohibited.</p>
|
|
|
|
<p>XSI-conformant systems support this option.</p>
|
|
</dd>
|
|
|
|
<dt>_POSIX_THREAD_PRIORITY_SCHEDULING</dt>
|
|
|
|
<dd><br>
|
|
The system provides priority-based thread scheduling.
|
|
|
|
<p>Support of this option provides predictable scheduling behavior, allowing applications to determine the order in which threads
|
|
that are ready to run are granted access to a processor. It should only be required if needed, but it should never be
|
|
prohibited.</p>
|
|
</dd>
|
|
|
|
<dt>_POSIX_THREAD_PRIO_INHERIT</dt>
|
|
|
|
<dd><br>
|
|
The system provides mutual-exclusion operations with priority inheritance.
|
|
|
|
<p>Support of this option provides predictable scheduling behavior, allowing applications to determine the order in which threads
|
|
that are ready to run are granted access to a processor. It should only be required if needed, but it should never be
|
|
prohibited.</p>
|
|
</dd>
|
|
|
|
<dt>_POSIX_THREAD_PRIO_PROTECT</dt>
|
|
|
|
<dd><br>
|
|
The system supports a priority ceiling emulation protocol for mutual-exclusion operations.
|
|
|
|
<p>Support of this option provides predictable scheduling behavior, allowing applications to determine the order in which threads
|
|
that are ready to run are granted access to a processor. It should only be required if needed, but it should never be
|
|
prohibited.</p>
|
|
</dd>
|
|
|
|
<dt>_POSIX_THREAD_PROCESS_SHARED</dt>
|
|
|
|
<dd><br>
|
|
The system provides shared access among multiple processes to synchronization objects.
|
|
|
|
<p>This option was created to support historical systems that did not provide the feature. It should only be required if needed,
|
|
but it should never be prohibited.</p>
|
|
|
|
<p>XSI-conformant systems support this option.</p>
|
|
</dd>
|
|
|
|
<dt>_POSIX_THREAD_SAFE_FUNCTIONS</dt>
|
|
|
|
<dd><br>
|
|
The system provides thread-safe versions of all of the POSIX.1 functions.
|
|
|
|
<p>This option is required if the Threads option is supported. This is a separate option because thread-safe functions are useful
|
|
in implementations providing other mechanisms for concurrency. It should only be required if needed, but it should never be
|
|
prohibited.</p>
|
|
|
|
<p>XSI-conformant systems support this option.</p>
|
|
</dd>
|
|
|
|
<dt>_POSIX_THREAD_SPORADIC_SERVER</dt>
|
|
|
|
<dd><br>
|
|
The system supports the thread sporadic server scheduling policy.
|
|
|
|
<p>Support for this option provides applications with a new scheduling policy for scheduling aperiodic threads in hard realtime
|
|
applications.</p>
|
|
</dd>
|
|
|
|
<dt>_POSIX_TIMEOUTS</dt>
|
|
|
|
<dd><br>
|
|
The system provides timeouts for some blocking services.
|
|
|
|
<p>This option was created to provide a timeout capability to system services, thus allowing applications to include better error
|
|
detection, and recovery capabilities.</p>
|
|
</dd>
|
|
|
|
<dt>_POSIX_TIMERS</dt>
|
|
|
|
<dd><br>
|
|
The system provides higher resolution clocks with multiple timers per process.
|
|
|
|
<p>This option was created to support historical systems that did not provide the features. This option is appropriate for
|
|
applications requiring higher resolution timestamps or needing to control the timing of multiple activities. It should only be
|
|
required if needed, but it should never be prohibited.</p>
|
|
</dd>
|
|
|
|
<dt>_POSIX_TRACE</dt>
|
|
|
|
<dd><br>
|
|
The system supports the Trace option.
|
|
|
|
<p>This option was created to allow applications to perform tracing.</p>
|
|
</dd>
|
|
|
|
<dt>_POSIX_TRACE_EVENT_FILTER</dt>
|
|
|
|
<dd><br>
|
|
The system supports the Trace Event Filter option.
|
|
|
|
<p>This option is dependent on support of the Trace option.</p>
|
|
</dd>
|
|
|
|
<dt>_POSIX_TRACE_INHERIT</dt>
|
|
|
|
<dd><br>
|
|
The system supports the Trace Inherit option.
|
|
|
|
<p>This option is dependent on support of the Trace option.</p>
|
|
</dd>
|
|
|
|
<dt>_POSIX_TRACE_LOG</dt>
|
|
|
|
<dd><br>
|
|
The system supports the Trace Log option.
|
|
|
|
<p>This option is dependent on support of the Trace option.</p>
|
|
</dd>
|
|
|
|
<dt>_POSIX_TYPED_MEMORY_OBJECTS</dt>
|
|
|
|
<dd><br>
|
|
The system supports the Typed Memory Objects option.
|
|
|
|
<p>This option was created to allow realtime applications to access different kinds of physical memory, and allow processes in
|
|
these applications to share portions of this memory.</p>
|
|
</dd>
|
|
</dl>
|
|
|
|
<h4><a name="tag_04_03_05"></a>Configurable Limits</h4>
|
|
|
|
<p>In general, the configurable limits in the <a href="../basedefs/limits.h.html"><i><limits.h></i></a> header defined in the
|
|
Base Definitions volume of IEEE Std 1003.1-2001 have been set to minimal values; many applications or implementations may
|
|
require larger values. No profile can cite lower values.</p>
|
|
|
|
<dl compact>
|
|
<dt>{AIO_LISTIO_MAX}</dt>
|
|
|
|
<dd><br>
|
|
The current minimum is likely to be inadequate for most applications. It is expected that this value will be increased by profiles
|
|
requiring support for list input and output operations.</dd>
|
|
|
|
<dt>{AIO_MAX}</dt>
|
|
|
|
<dd><br>
|
|
The current minimum is likely to be inadequate for most applications. It is expected that this value will be increased by profiles
|
|
requiring support for asynchronous input and output operations.</dd>
|
|
|
|
<dt>{AIO_PRIO_DELTA_MAX}</dt>
|
|
|
|
<dd><br>
|
|
The functionality associated with this limit is needed only by sophisticated applications. It is not expected that this limit would
|
|
need to be increased under a general-purpose profile.</dd>
|
|
|
|
<dt>{ARG_MAX}</dt>
|
|
|
|
<dd><br>
|
|
The current minimum is likely to need to be increased for profiles, particularly as larger amounts of information are passed
|
|
through the environment. Many implementations are believed to support larger values.</dd>
|
|
|
|
<dt>{CHILD_MAX}</dt>
|
|
|
|
<dd><br>
|
|
The current minimum is suitable only for systems where a single user is not running applications in parallel. It is significantly
|
|
too low for any system also requiring windows, and if _POSIX_JOB_CONTROL is specified, it should be raised.</dd>
|
|
|
|
<dt>{CLOCKRES_MIN}</dt>
|
|
|
|
<dd><br>
|
|
It is expected that profiles will require a finer granularity clock, perhaps as fine as 1 µs, represented by a value of 1000
|
|
for this limit.</dd>
|
|
|
|
<dt>{DELAYTIMER_MAX}</dt>
|
|
|
|
<dd><br>
|
|
It is believed that most implementations will provide larger values.</dd>
|
|
|
|
<dt>{LINK_MAX}</dt>
|
|
|
|
<dd><br>
|
|
For most applications and usage, the current minimum is adequate. Many implementations have a much larger value, but this should
|
|
not be used as a basis for raising the value unless the applications to be used require it.</dd>
|
|
|
|
<dt>{LOGIN_NAME_MAX}</dt>
|
|
|
|
<dd><br>
|
|
This is not actually a limit, but an implementation parameter. No profile should impose a requirement on this value.</dd>
|
|
|
|
<dt>{MAX_CANON}</dt>
|
|
|
|
<dd><br>
|
|
For most purposes, the current minimum is adequate. Unless high-speed burst serial devices are used, it should be left as is.</dd>
|
|
|
|
<dt>{MAX_INPUT}</dt>
|
|
|
|
<dd><br>
|
|
See {MAX_CANON}.</dd>
|
|
|
|
<dt>{MQ_OPEN_MAX}</dt>
|
|
|
|
<dd><br>
|
|
The current minimum should be adequate for most profiles.</dd>
|
|
|
|
<dt>{MQ_PRIO_MAX}</dt>
|
|
|
|
<dd><br>
|
|
The current minimum corresponds to the required number of process scheduling priorities. Many realtime practitioners believe that
|
|
the number of message priority levels ought to be the same as the number of execution scheduling priorities.</dd>
|
|
|
|
<dt>{NAME_MAX}</dt>
|
|
|
|
<dd><br>
|
|
Many implementations now support larger values, and many applications and users assume that larger names can be used. Many existing
|
|
profiles also specify a larger value. Specifying this value will reduce the number of conforming implementations, although this
|
|
might not be a significant consideration over time. Values greater than 255 should not be required.</dd>
|
|
|
|
<dt>{NGROUPS_MAX}</dt>
|
|
|
|
<dd><br>
|
|
The value selected will typically be 8 or larger.</dd>
|
|
|
|
<dt>{OPEN_MAX}</dt>
|
|
|
|
<dd><br>
|
|
The historically common value for this has been 20. Many implementations support larger values. If applications that use larger
|
|
values are anticipated, an appropriate value should be specified.</dd>
|
|
|
|
<dt>{PAGESIZE}</dt>
|
|
|
|
<dd><br>
|
|
This is not actually a limit, but an implementation parameter. No profile should impose a requirement on this value.</dd>
|
|
|
|
<dt>{PATH_MAX}</dt>
|
|
|
|
<dd><br>
|
|
Historically, the minimum has been either 1024 or indefinite, depending on the implementation. Few applications actually require
|
|
values larger than 256, but some users may create file hierarchies that must be accessed with longer paths. This value should only
|
|
be changed if there is a clear requirement.</dd>
|
|
|
|
<dt>{PIPE_BUF}</dt>
|
|
|
|
<dd><br>
|
|
The current minimum is adequate for most applications. Historically, it has been larger. If applications that write single
|
|
transactions larger than this are anticipated, it should be increased. Applications that write lines of text larger than this
|
|
probably do not need it increased, as the text line is delimited by a <newline>.</dd>
|
|
|
|
<dt>{POSIX_VERSION}</dt>
|
|
|
|
<dd><br>
|
|
This is actually not a limit, but a standard version stamp. Generally, a profile should specify IEEE Std 1003.1-2001 by a
|
|
name in the normative references section, not this value.</dd>
|
|
|
|
<dt>{PTHREAD_DESTRUCTOR_ITERATIONS}</dt>
|
|
|
|
<dd><br>
|
|
It is unlikely that applications will need larger values to avoid loss of memory resources.</dd>
|
|
|
|
<dt>{PTHREAD_KEYS_MAX}</dt>
|
|
|
|
<dd><br>
|
|
The current value should be adequate for most profiles.</dd>
|
|
|
|
<dt>{PTHREAD_STACK_MIN}</dt>
|
|
|
|
<dd><br>
|
|
This should not be treated as an actual limit, but as an implementation parameter. No profile should impose a requirement on this
|
|
value.</dd>
|
|
|
|
<dt>{PTHREAD_THREADS_MAX}</dt>
|
|
|
|
<dd><br>
|
|
It is believed that most implementations will provide larger values.</dd>
|
|
|
|
<dt>{RTSIG_MAX}</dt>
|
|
|
|
<dd><br>
|
|
The current limit was chosen so that the set of POSIX.1 signal numbers can fit within a 32-bit field. It is recognized that most
|
|
existing implementations define many more signals than are specified in POSIX.1 and, in fact, many implementations have already
|
|
exceeded 32 signals (including the "null signal"). Support of {_POSIX_RTSIG_MAX} additional signals may push some implementations
|
|
over the single 32-bit word line, but is unlikely to push any implementations that are already over that line beyond the 64 signal
|
|
line.</dd>
|
|
|
|
<dt>{SEM_NSEMS_MAX}</dt>
|
|
|
|
<dd><br>
|
|
The current value should be adequate for most profiles.</dd>
|
|
|
|
<dt>{SEM_VALUE_MAX}</dt>
|
|
|
|
<dd><br>
|
|
The current value should be adequate for most profiles.</dd>
|
|
|
|
<dt>{SSIZE_MAX}</dt>
|
|
|
|
<dd><br>
|
|
This limit reflects fundamental hardware characteristics (the size of an integer), and should not be specified unless it is clearly
|
|
required. Extreme care should be taken to assure that any value that might be specified does not unnecessarily eliminate
|
|
implementations because of accidents of hardware design.</dd>
|
|
|
|
<dt>{STREAM_MAX}</dt>
|
|
|
|
<dd><br>
|
|
This limit is very closely related to {OPEN_MAX}. It should never be larger than {OPEN_MAX}, but could reasonably be smaller for
|
|
application areas where most files are not accessed through <i>stdio</i>. Some implementations may limit {STREAM_MAX} to 20 but
|
|
allow {OPEN_MAX} to be considerably larger. Such implementations should be allowed for if the applications permit.</dd>
|
|
|
|
<dt>{TIMER_MAX}</dt>
|
|
|
|
<dd><br>
|
|
The current limit should be adequate for most profiles, but it may need to be larger for applications with a large number of
|
|
asynchronous operations.</dd>
|
|
|
|
<dt>{TTY_NAME_MAX}</dt>
|
|
|
|
<dd><br>
|
|
This is not actually a limit, but an implementation parameter. No profile should impose a requirement on this value.</dd>
|
|
|
|
<dt>{TZNAME_MAX}</dt>
|
|
|
|
<dd><br>
|
|
The minimum has been historically adequate, but if longer timezone names are anticipated (particularly such values as UTC-1), this
|
|
should be increased.</dd>
|
|
</dl>
|
|
|
|
<h4><a name="tag_04_03_06"></a>Optional Behavior</h4>
|
|
|
|
<p>In IEEE Std 1003.1-2001, there are no instances of the terms unspecified, undefined, implementation-defined, or with
|
|
the verbs "may" or "need not", that the developers of IEEE Std 1003.1-2001 anticipate or sanction as suitable for
|
|
profile or test method citation. All of these are merely warnings to conforming applications to avoid certain areas that can vary
|
|
from system to system, and even over time on the same system. In many cases, these terms are used explicitly to support extensions,
|
|
but profiles should not anticipate and require such extensions; future versions of IEEE Std 1003.1 may do so.</p>
|
|
|
|
<hr size="2" noshade>
|
|
<center><font size="2"><!--footer start-->
|
|
UNIX ® is a registered Trademark of The Open Group.<br>
|
|
POSIX ® is a registered Trademark of The IEEE.<br>
|
|
[ <a href="../mindex.html">Main Index</a> | <a href="../basedefs/contents.html">XBD</a> | <a href=
|
|
"../utilities/contents.html">XCU</a> | <a href="../functions/contents.html">XSH</a> | <a href="../xrat/contents.html">XRAT</a>
|
|
]</font></center>
|
|
|
|
<!--footer end-->
|
|
<hr size="2" noshade>
|
|
<hr>
|
|
<h4><a name="tag_04_03_07"></a>Footnotes</h4>
|
|
|
|
<dl compact>
|
|
<dt><a name="tag_foot_1">1.</a></dt>
|
|
|
|
<dd>The utilities listed with an asterisk here and later in this section are present only on systems which support the User
|
|
Portability Utilities option. There may be further restrictions on the utilities offered with various configuration option
|
|
combinations; see the individual utility descriptions.</dd>
|
|
|
|
<dt><a name="tag_foot_2">2.</a></dt>
|
|
|
|
<dd>There are no formally approved profiles of IEEE Std 1003.1-2001 at the time of publication; the reference here is to
|
|
various profiles generated by private bodies or governments.</dd>
|
|
</dl>
|
|
|
|
</body>
|
|
</html>
|
|
|