unistd(4) unistd(4)
NAME
unistd - Symbolische Standardkonstanten und -typen
SYNTAX
#include <unistd.h>
BESCHREIBUNG
Die Include-Datei <unistd.h> definiert verschiedene symbolische Kon-
stanten und Typen und deklariert verschiedene Funktionen. Der Inhalt
dieser Include-Datei ist unten angegeben. Folgende symbolische Kon-
stanten sind definiert:
POSIXVERSION Ganzzahliger Wert, der die Version des Stan-
dards ISO POSIX-1 (C-Binding-Schnittstellen)
angibt.
POSIX2VERSION Ganzzahliger Wert, der die Version des Stan-
dards ISO POSIX-2 (Kommandos) angibt.
POSIX2CVERSION Ganzzahliger Wert, der die Version des Stan-
dards ISO POSIX-2 (C-Binding-Schnittstellen)
angibt. Dieser Wert gibt ferner an, ob die
X/Open POSIX2 "C-language Binding Feature
Group" unterstützt wird.
XOPENVERSION Ganzzahliger Wert, der die Version des X/Open
Portability Guide angibt, dem die Implementie-
rung entspricht.
POSIXVERSION ist im Standard ISO POSIX-1 definiert. Der Wert ändert
sich mit jeder neuen Version von ISO POSIX-1.
POSIX2VERSION ist im Standard ISO POSIX-2 definiert. Der Wert ändert
sich mit jeder neuen Version von ISO POSIX-2.
POSIX2CVERSION ist im Standard ISO POSIX-2 definiert. Der Wert
ändert sich mit jeder neuen Version von ISO POSIX-2. Wenn die C-
Binding-Schnittstellen des Standards ISO POSIX-2 und somit auch die
X/Open POSIX2 "C-language Binding Feature Group" nicht unterstützt
wird, wird POSIX2CVERSION auf -1 gesetzt.
XOPENVERSION ist als ganzzahlige Wert größer oder gleich 4 defi-
niert, der eine der Ausgaben des X/Open Portability Guide angibt, dem
die Implementierung entspricht.
XOPENXCUVERSION ist als ganzzahliger Wert definiert, der die Ver-
sion von XCU (X/Open Commands and Utilities) angibt, welche der Imple-
mentierung entspricht. Ist dieser Wert gleich -1, sind in der Imple-
mentierung keine Kommandos und Dienstprogramme enthalten. Ist der Wert
größer oder gleich 4, werden auch die Funktionen unterstützt, die den
folgenden Symbolen zugeordnet sind:
Seite 1 Reliant UNIX 5.44 Gedruckt 11/98
unistd(4) unistd(4)
POSIX2CBIND
POSIX2CVERSION
POSIX2CHARTERM
POSIX2LOCALEDEF
POSIX2UPE
POSIX2VERSION
Wenn diese Konstante nicht definiert ist, können Sie anhand der Funk-
tion sysconf() feststellen, welche Funktionen unterstützt werden.
Die folgenden symbolischen Konstanten sind nur dann definiert, wenn
die Implementierung den angegebenen Änderungsstand des X/Open Portabi-
lity Guide unterstützt.
XOPENXPG2 X/Open Portability Guide, Volume 2, January
1987, XVS System Calls and Libraries (ISBN:
0-444-70175-3).
XOPENXPG3 X/Open Specification, February 1992, System
Interfaces and Headers, Issue 3 (ISBN:
1-872630-37-5, C212); bei dieser Spezifikation
handelt es sich um den früheren X/Open Portabi-
lity Guide, Issue 3, Volume 2, January 1989,
XSI System Interface and Headers (ISBN:
0-13-685843-0, XO/XPG/89/003).
XOPENXPG4 X/Open CAE Specification, July 1992, System
Interfaces and Headers, Issue 4 (ISBN:
1-872630-47-2, C202).
XOPENUNIX X/Open CAE Specification, August 1994, System
Interfaces and Headers, Issue 4, Version 2
(ISBN: 1-85912-037-7, C435).
Obligatorische symbolische Konstanten
Obwohl alle Implementierungen, die vorliegender Beshreibung entspre-
chen, auch alle im folgenden beschriebenen FIPS-Funktionen (FIPS -
Federal Information Processing Standards) unterstützen, kann es
systemspezifische oder dateisystemspezifische Konfigurationsprozeduren
geben, die einige oder alle dieser Funktionen entfernen beziehungs-
weise ändern können. Solche Konfigurationen sollten nicht durchgeführt
werden, wenn eine strikte Einhaltung der FIPS gefordert ist.
Die folgenden symbolischen Konstanten sind entweder undefiniert oder
mit einem anderen Wert als -1 definiert. Wenn eine Konstante undefi-
niert ist, sollte eine Anwendung anhand der Funktion sysconf(),
pathconf() oder fpathconf() feststellen, welche Funktionen zur Zeit
beziehungsweise für den entsprechenden Pfadnamen auf dem System
installiert sind.
Seite 2 Reliant UNIX 5.44 Gedruckt 11/98
unistd(4) unistd(4)
POSIXCHOWNRESTRICTED chown() kann nur von einem Prozeß mit ent-
sprechenden Berechtigungen verwendet werden,
wobei die Gruppen-ID einer Datei nur in die
effektive Gruppen-ID des Prozesses oder in
eine der zugehörigen Gruppen-IDs geändert
werden kann.
POSIXNOTRUNC Komponenten von Pfadnamen, die länger als
NAMEMAX sind, führen zu einem Fehler.
POSIXVDISABLE In <termios.h> definierte Sonerzeichen des
Terminals können über diesen Zeichenwert
deaktiviert werden.
POSIXSAVEDIDS Jeder Prozeß verfügt über eine gesicherte
set-UID und eine gesicherte set-GID.
POSIXJOBCONTROL Die Implementation unterstützt die Ablauf-
steuerung.
POSIXCHOWNRESTRICTED, POSIXNOTRUNC und POSIXVDISABLE haben
andere Werte als -1.
Konstanten für Optionen und Funktionsgruppen
Die folgenden symbolischen Konstanten sind so definiert, daß sie den
Wert -1 annehmen, wenn die Implementierung die Funktion nie zur Verfü-
gung stellt, und einen anderen Wert, wenn die Implementierung die
Funktion immer zur Verfügung stellt. Sind die Konstanten nicht defi-
niert, kann über die Funktion sysconf() festgestellt werden, ob die
Funktion für einen bestimmten Aufruf der Anwendung verfügbar ist.
POSIX2CBIND Die Implementierung unterstützt die C-Ent-
wicklungsschnittstellen.
POSIX2CDEV Die Implementierung unterstützt die C-Ent-
wicklungsprogramme.
POSIX2CHARTERM Die Implementierung unterstützt zumindest
einen Terminaltyp.
POSIX2FORTDEV Die Implementierung unterstützt die FORTRAN-
Entwicklungsschnittstellen.
POSIX2FORTRUN Die Implementierung unterstützt die FORTRAN-
Run-time-Entwicklungsschnittstellen.
POSIX2LOCALEDEF Die Implementierung unterstützt die Erstel-
lung von internationalen Umgebungen durch
localedef.
Seite 3 Reliant UNIX 5.44 Gedruckt 11/98
unistd(4) unistd(4)
POSIX2SWDEV Die Implementierung unterstützt die
Software-Entwicklungsschnittstellen.
POSIX2UPE Die Implementierung unterstützt die
Benutzer-Portabilitätsschnittstellen.
XOPENCRYPT Die Implementierung unterstützt die X/Open
Encryption Feature Group.
XOPENENHI18N Die Implementierung unterstützt die X/Open
Enhanced Internationalisation Feature Group.
XOPENSHM Die Implementierung unterstützt die X/Open
Shared Memory Feature Group.
Konstanten für Funktionen
Folgende symbolische Konstante ist definiert:
NULL Nullzeiger
Die folgenden symbolischen Konstanten sind für die Funktion access()
definiert:
ROK Prüft auf Leseberechtigung.
WOK Prüft auf Schreibberechtigung.
XOK Prüft auf Ausführungs-/Suchberechtigung.
FOK Püpft auf das Vorhandensein der Datei.
Die Konstanten FOK, ROK, WOK und XOK sowie die Ausdrücke ROK |
WOK, ROK | XOK und ROK | WOK | XOK haben alle veschiedene Werte.
Die folgende symbolische Konstante ist für die Funktion confstr()
definiert:
CSPATH Wenn der Standard ISO POSIX-2 unterstützt wird, ist
dies der Wert für die Umgebungsvariable PATH, der alle
Standarddienstprogramme findet. Andernfalls ist die
Bedeutung dieses Wertes nicht definiert.
Die folgenden symbolischen Konstanten sind für die Funktionen lseek()
und fcntl() definiert (sie haben verschiedebe Werte):
SEEKSET Setzt den Datei-Offset auf offset.
SEEKCUR Setzt den Datei-Offset auf die aktuellen Position plus
offset.
Seite 4 Reliant UNIX 5.44 Gedruckt 11/98
unistd(4) unistd(4)
SEEKEND Setzt den Datei-Offset auf das Dateiende (EOF) plus
offset.
Die folgenden symbolischen Konstanten sind für sysconf() definiert:
SC2CBIND
SC2CDEV
SC2CVERSION
SC2FORTDEV
SC2FORTRUN
SC2LOCALEDEF
SC2SWDEV
SC2UPE
SC2VERSION
SCARGMAX
SCATEXITMAX
SCBCBASEMAX
SCBCDIMMAX
SCBCSCALEMAX
SCBCSTRINGMAX
SCCHILDMAX
SCCLKTCK
SCCOLLWEIGHTSMAX
SCEXPRNESTMAX
SCIOVMAX
SCJOBCONTROL
SCLINEMAX
SCNGROUPSMAX
SCOPENMAX
SCPAGESIZE
SCPAGESIZE
SCPASSMAX
SCREDUPMAX
SCSAVEDIDS
SCSTREAMMAX
SCTZNAMEMAX
SCVERSION
SCXOPENVERSION
SCXOPENCRYPT
SCXOPENENHI18N
SCXOPENSHM
SCXOPENUNIX
Die beiden Konstanten SCPAGESIZE und SCPAGESIZE können so defi-
niert werden, daß sie denselben Wert haben.
Die folgenden symbolischen Konstanten sind als mögliche Wert für das
Argument function für die Funktion lockf() definiert:
FLOCK Sperrt einen Abschnitt für exklusive Benutzung.
FULOCK Entsperrt gesperrte Abschnitte.
Seite 5 Reliant UNIX 5.44 Gedruckt 11/98
unistd(4) unistd(4)
FTEST Prüft einen Abschnitt auf Sperren durch andere Pro-
zesse.
FTLOCK Prüft einen Abschnitt und sperrt ihn für exklusive
Benutzung.
Die folgenden symbolischen Konstanten sind für pathconf() definiert:
PCCHOWNRESTRICTED
PCFILESIZEBITS
PCLINKMAX
PCMAXCANON
PCMAXINPUT
PCNAMEMAX
PCNOTRUNC
PCPATHMAX
PCPIPEBUF
PCVDISABLE
Die folgenden symbolischen Konstanten sind für Datei-Streams defi-
niert:
STDINFILENO Dateinummer von stdin. Diese ist 0.
STDOUTFILENO Dateinummer von stdout. Diese ist 1.
STDERRFILENO Dateinummer von stderr. Diese ist 2.
Die folgenden Pfadnamen sind definiert:
GFPATH Pfadname der Gruppendatei.
PFPATH Pfadname der Paßwortdatei.
Der folgende Funktionsprototyp kann auch als Makros definiert sein
[siehe gethostname(3N-xs)]:
int gethostname(char *address, int addresslen);
Die folgenden Werte für Konstanten sind für das vorliegende Release
von System V definiert:
POSIXVERSION 199009L
XOPENVERSION 4
Typdefinitionen
Die Typen sizet, ssizet, uidt, gidt, offt und pidt sind wie in
<sys/types.h> beschrieben definiert.
Der Typ usecondst ist wie in <sys/types.h> beschrieben definiert.
Seite 6 Reliant UNIX 5.44 Gedruckt 11/98
unistd(4) unistd(4)
Deklarationen
Folgende Funktionsprototypen können auch als Makros definiert sein:
int access(const char *path, int amode);
unsigned int alarm(unsigned int seconds);
int brk(void *addr);
int chdir(const char *path);
int chown(const char *path, uidt owner, gidt group);
int chroot(const char *path);
int close(int fildes);
sizet confstr (int name, char *buf, sizet len);
char *crypt(const char *key, const char *salt);
char *ctermid(char *s);
char *cuserid(char *s);
int dup(int fildes);
int dup2(int fildes, int fildes2);
void encrypt(char block[64], int edflag);
int execl(const char *path, const char *arg0, ...);
int execle(const char *file, const char *arg0, ...);
int execlp(const char *file, const char *arg0, ...);
int execv(const char *path, char *const argv[]);
int execve(const char *path, char *const argv[],
char *const envp[]);
int execvp(const char *file, char *const argv[]);
void exit(int status);
int fchown(int fildes, uidt owner, gidt group);
int fchdir(int fildes);
pidt fork(void);
long int fpathconf(int fildes, int name);
int fsync(int fildes);
int ftruncate(int fildes, offt length);
int ftruncate64(int fildes, off64t length);
char *getcwd(char *buf, sizet size);
int getdtablesize(void);
gidt getegid(void);
uidt geteuid(void);
gidt getgid(void);
int getgroups(int gidsetsize, gidt grouplist[]);
long gethostid(void);
char *getlogin(void);
int getopt(int argc, char * const argv[],
const char *optstring);
int getpagesize(void);
char *getpass(const char *prompt);
pidt getpgid(pidt pid);
pidt getpgrp(void);
pidt getpid(void);
pidt getppid(void);
pidt getsid(pidt pid);
uidt getuid(void);
char *getwd(char *pathname);
Seite 7 Reliant UNIX 5.44 Gedruckt 11/98
unistd(4) unistd(4)
int isatty(int fildes);
int lchown(const char *path, uidt owner, gidt group);
int link(const char *path1, const char *path2);
int lockf(int fildes,int function,offt size);
int ftruncate64(int fildes, off64t length);
offt lseek(int fildes, offt offset, int whence);
off64t lseek64(int fildes, off64t offset, int whence);
int nice(int incr);
long int pathconf(const char *path, int name);
int pause(void);
int pipe(int fildes[2]);
ssizet read(int fildes, void *buf, sizet nbyte);
int readlink(const char *path, char *buf, sizet bufsiz);
int rmdir(const char *path);
void *sbrk(int incr);
int setgid(gidt gid);
int setpgid(pidt pid, pidt pgid);
pidt setpgrp(void);
int setregid(gidt rgid, gidt egid);
int setreuid(uidt ruid, uidt euid);
pidt setsid(void);
int setuid(uidt uid);
unsigned int sleep(unsigned int seconds);
void swab(const void *src, void *dest, ssizet nbytes);
int symlink(const char *path1, const char *path2);
void sync(void);
long int sysconf(int name);
pidt tcgetpgrp(int fildes);
int tcsetpgrp(int fildes, pidt pgrpid);
int truncate(const char *path, offt length);
int truncate64(const char *path, off64t length);
char *ttyname(int fildes);
usecondst ualarm(usecondst useconds, usecondst interval);
int unlink(const char *path);
int usleep(usecondst useconds);
pidt vfork(void);
ssizet write(int fildes, const void *buf, sizet nbyte);
Die folgenden externen Variablen sind deklariert:
extern char *optarg;
extern int optind, opterr, optopt;
Versionstestmakros:
LFSLARGEFILE
Ist als 1 definiert, wenn die Implementierung die Schnittstellen
wie unter "2.2.1 Changes to System Interfaces" [LFS-Spezifika-
tion, siehe lfs(5)] angegeben unterstützt, jedoch mit der Aus-
nahme, daß die Implementierungen folgende asynchronen E/A-
Schnittstellen nicht bereitstellen müssen: aioread(),
aiowrite() und liolistio().
Seite 8 Reliant UNIX 5.44 Gedruckt 11/98
unistd(4) unistd(4)
LFSASYNCHRONOUSIO
Ist als 1 definiert, wenn die Implementierung die asynchronen
E/A-Schnittstellen aioread(), aiowrite() und liolistio()
unterstützt, wie unter "2.2.1 Changes to System Interfaces"
[LFS-Spezifikation, siehe lfs(5)] angegeben.
LFS64ASYNCHRONOUSIO
Ist als 1 definiert, wenn die Implementierung alle Übergangser-
weiterungen unterstützt, die unter "3.1.1.1.1 Asynchronous I/O
Interfaces" und "3.1.2.2 [LFS-Spezifikation, siehe lfs(5)] aufge-
führt sind.
LFS64LARGEFILE
Ist als 1 definiert, wenn die Implementierung alle Übergangser-
weiterungen unterstützt, die unter "3.1.1.1.3 Other Interfaces",
"3.1.1.2 fcntl()", "3.1.1.3 open()" und "3.1.2 Transitional
Extensions to Headers" zu Include-Dateien angegeben sind, wobei
die unter "3.1.2.2 <aio.h>" und "3.1.2.6 <stdio.h>" [LFS-Spezifi-
kation, siehe lfs(5)] angegebenen Änderungen nicht unterstützt
werden müssen.
LFS64STDIO
Ist als 1 definiert, wenn die Implementierung alle Übergangser-
weiterungen unterstützt, die unter "3.1.1.1.2 STDIO Interfaces"
und "3.1.2.6 <stdio.h>" [LFS-Spezifikation, siehe lfs(5)] aufge-
führt sind.
Wenn LFS64STDIO nicht als 1 definiert ist und in der zugrunde-
liegenden Dateibeschreibung, die dem Stream zugeordnet ist,
OLARGEFILE gesetzt ist, dan ist das Verhalten der Standard-E/A-
Funktionen unbestimmt.
Konstanten für Funktionen:
CSLFSCFLAGS Für confstr().
CSLFSLDFLAGS Für confstr().
CSLFSLIBS Für confstr().
CSLFSLINTFLAGS Für confstr().
CSLFS64CFLAGS Für confstr().
CSLFS64LDFLAGS Für confstr().
CSLFS64LIBS Für confstr().
CSLFS64LINTFLAGS Für confstr().
SIEHE AUCH
access(2), alarm(2), brk(2), chdir(2), chown(2), chroot(2), close(2),
dup(2), exec(2), exit(2), fcntl(2), fork(2), fpathconf(2), fsync(2),
getgroups(2), getpid(2), getsid(2), getuid(2), link(2), lseek(2),
nice(2), pause(2), pipe(2), read(2), readlink(2), rmdir(2), setpgid(2),
setpgrp(2), setsid(2), setuid(2), symlink(2), sync(2), unlink(2),
vfork(2), write(2), getdtablesize(3), getpagesize(3), getwd(3),
setregid(3), setreuid(3), ualarm(3), usleep(3), confstr(3C), crypt(3C),
Seite 9 Reliant UNIX 5.44 Gedruckt 11/98
unistd(4) unistd(4)
getcwd(3C), getlogin(3C), getpass(3C), lockf(3C), sleep(3C), swab(3C),
sysconf(3C), tcsetpgrp(3C), truncate(3C), ttyname(3C), gethostid(3N),
gethostname(3N-xs), ctermid(3S), cuserid(3S), group(4), limits(4),
passwd(4), lfs(5), termios(5), types(5).
Seite 10 Reliant UNIX 5.44 Gedruckt 11/98