Museum

Home

Lab Overview

Retrotechnology Articles

⇒ Online Manual

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

chmod(2)

close(2)

dup(2)

fcntl(2)

getrlimit(2)

lseek(2)

open(2)

read(2)

umask(2)

write(2)

fcntl(5)

lfs(5)

stat(5)

types(5)

creat(2)                                                           creat(2)

NAME
     creat, creat64 - Neue Datei erstellen oder vorhandene Datei über-
     schreiben

SYNTAX
     #include <sys/types.h>
     #include <sys/stat.h>
     #include <fcntl.h>

     int creat(const char *path, modet mode);

     int creat64(const char *path, modet mode);

BESCHREIBUNG
     creat() erstellt eine neue Datei oder bereitet eine vorhandene Datei
     vor, neu beschrieben zu werden. Die Datei wird durch den Pfadnamen
     angegeben, auf den path zeigt.

     Wenn die Datei vorhanden ist, wird ihre Länge auf 0 abgeschnitten, und
     Modus und Eigentümer bleiben unverändert.

     Wenn die Datei nicht existiert, wird die Datei-Eigentümernummer auf
     die effektive Benutzernummer des Prozesses gesetzt. Die Gruppennummer
     der Datei wird auf die effektive Gruppennummer des Prozesses gesetzt;
     wenn aber das SISGID-Bit im übergeordneten Verzeichnis gesetzt ist,
     dann wird die Gruppennummer der Datei vom übergeordneten Verzeichnis
     geerbt. Die Zugriffserlaubnis-Bits des Dateimodus werden auf den Wert
     von mode wie folgt geändert:

     -  Wenn die Gruppennummer der neuen Datei nicht zur effektiven oder
        einer der zusätzlichen Gruppennummern paßt, wird das SISGID-Bit
        gelöscht.

     -  Alle Bits, die in der Dateityp-Erstellungsmaske des Prozesses
        gesetzt sind, werden gelöscht [siehe umask(2)].

     -  Das Bit für die Sicherung des Textsegments nach der Ausführung wird
        gelöscht [siehe chmod(2)].

     Nach erfolgreicher Beendigung wird ein Dateideskriptor mit reiner
     Schreiberlaubnis zurückgegeben, und die Datei wird zum Schreiben
     geöffnet, auch wenn der Modus das Schreiben nicht zuläßt. Der
     Schreib-/Lesezeiger wird auf den Anfang der Datei gesetzt. Die Datei
     bleibt standardmäßig bei exec-Systemaufrufen geöffnet [siehe
     fcntl(2)]. Eine neue Datei kann mit einem Modus eröffnet werden, der
     Schreiben nicht zuläßt.

     Der Aufruf creat(path, mode) entspricht dem Aufruf von

          open(path, OWRONLY | OCREAT | OTRUNC, mode)





Seite 1                      Reliant UNIX 5.44               Gedruckt 11/98

creat(2)                                                           creat(2)

     Es besteht kein funktionaler Unterschied zwischen creat() und
     creat64(), außer bei der Interpretation von off64t [siehe lfs(5)].

FEHLER
     Die folgenden Beschreibungen der Fehlercodes sind funktionsspezifisch.
     Eine allgemeingültige Beschreibung finden Sie in introprm2(2) bzw. in
     errno(5).

     creat() ist erfolglos, wenn einer oder mehrere der folgenden Punkte
     zutreffen:

     EACCES        Eine Komponente des Pfades darf nicht durchsucht werden.

     EACCES        Die Datei ist nicht vorhanden, und das Verzeichnis, in
                   dem die Datei angelegt werden soll, läßt das Schreiben
                   nicht zu.

     EACCES        Die Datei ist vorhanden, und die Schreiberlaubnis wird
                   verweigert.

     EAGAIN        Die Datei ist vorhanden, obligatorisches Sperren von
                   Dateien und Dateisätzen ist gesetzt, und in der Datei
                   sind noch Dateisatzsperren vorhanden [siehe chmod(2)].

     EFAULT        path weist über den zugewiesenen Adreßraum des Prozesses
                   hinaus.

     EISDIR        Die angegebene Datei ist ein Verzeichnis.

     EINTR         Ein Signal wurde während des Systemaufrufs creat() abge-
                   fangen.

     ELOOP         Während der Übersetzung von path wurden zu viele symbo-
                   lische Verweise angetroffen.

     EMFILE        Der Prozeß hat zu viele Dateien geöffnet [siehe
                   getrlimit(2)].

     ENAMETOOLONG  Die Länge des path-Arguments überschreitet PATHMAX,
                   oder die Länge einer path-Komponente überschreitet
                   NAMEMAX.

     ENOTDIR       Eine Komponente des Pfadnamens ist kein Verzeichnis.

     ENOENT        Eine Komponente des Pfadnamens existiert nicht.

     ENOENT        Der Pfadname ist Null.

     EROFS         Die angegebene Datei steht in einem schreibgeschützten
                   Dateisystem.




Seite 2                      Reliant UNIX 5.44               Gedruckt 11/98

creat(2)                                                           creat(2)

     ETXTBSY       Die Datei ist eine reine Programmdatei, die gerade aus-
                   geführt wird.

     ENFILE        Die Systemdateitabelle ist voll.

     ENOSPC        Das Dateisystem hat keine Indexeinträge mehr.

ERGEBNIS
     Nach erfolgreicher Beendigung wird eine nicht negative ganze Zahl,
     d. h. der Dateideskriptor, zurückgegeben. Andernfalls wird -1 zurück-
     gegeben, es wird keine Datei geöffnet oder modifiziert und errno wird
     zur Anzeige des Fehlers gesetzt.

SIEHE AUCH
     chmod(2), close(2), dup(2), fcntl(2), getrlimit(2), lseek(2), open(2),
     read(2), umask(2), write(2), fcntl(5), lfs(5), stat(5), types(5).






































Seite 3                      Reliant UNIX 5.44               Gedruckt 11/98

Typewritten Software • bear@typewritten.org • Edmonds, WA 98026