Definition | #include <fcntl.h> Optional int creat(const char *path, mode_t mode); BS2000 | |
Beschreibung | Wenn POSIX-Dateien erzeugt werden, verhält sich die Funktion XPG-konform wie folgt:
Wenn die Datei vorhanden ist, wird ihre Länge auf 0 abgeschnitten; 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
Der Aufruf
Es besteht kein funktionaler Unterschied zwischen BS2000 path kann sein:
mode: lbp-Schalter Der lbp-Schalter steuert die Behandlung des Last Byte Pointers (LBP). Er ist nur für Binärdateien mit Zugriffsart PAM relevant und kann mit jeder der oben angegebenen Konstanten kombiniert werden. Falls als lbp-Schalter
Beim Schließen einer Datei, die neu erstellt wurde, wird kein Marker geschrieben und ein gültiger LBP gesetzt.
Beim Schließen einer Datei, die neu erstellt wurde, wird der LBP auf Null (=ungültig) gesetzt. Es wird ein Marker geschrieben. Bei NK-Dateien wird der letzte logische Block mit binären Nullen aufgefüllt, bei K-Dateien wird die Datei bis zum physikalischen Dateiende aufgefüllt. Wird der lbp-Schalter in beiden Varianten angegeben ( Wird der lbp-Schalter nicht angegeben, hängt das Verhalten von der Umgebungsvariablen LAST_BYTE_POINTER ab (siehe auch Abschnitt "Umgebungsvariablen“ ):
Die Funktion verhält sich so, als ob
Die Funktion verhält sich so, als ob Nosplit-Schalter Dieser Schalter steuert die Verarbeitung von Textdateien mit der Zugriffsart SAM und variabler Satzlänge, wenn zusätzlich eine maximale Satzlänge angegeben ist. Er kann mit jeder der anderen Konstanten kombiniert werden.
Beim Schreiben mit Ist der Schalter nicht angegeben, gilt beim Schreiben Folgendes: Ein Satz, der länger als die maximale Satzlänge ist, wird in mehrere Sätze aufgeteilt. Hat ein Satz genau die maximale Satzlänge, wird nach diesem ein Satz der Länge Null geschrieben. Zum Eröffnen von Dateien mit satzorientierter Ein-/Ausgabe (Satz-E/A) kann beim Parameter modus die Konstante
Dieser Schalter bewirkt Folgendes:
Der BS2000-Dateiname bzw. -Linkname kann in Klein- und Großbuchstaben geschrieben werden, er wird automatisch in Großbuchstaben umgesetzt. Wird eine nicht vorhandene Datei angelegt, wird standardmäßig folgende Datei erzeugt:Bei KR-Funktionalität (nur bei C/C++ Versionen kleiner V3 vorhanden) eine SAM-Datei mit variabler Satzlänge und Standardblocklänge, bei ANSI-Funktionalität eine ISAM-Datei mit variabler Satzlänge und Standardblocklänge. Bei Verwendung eines Linknamens lassen sich mit dem Es können maximal | |
Returnwert | Dateideskriptor | |
bei Erfolg. | ||
-1 | bei Fehler. | |
Fehler |
| |
| Eine Komponente des Pfades darf nicht durchsucht werden. Die Datei ist nicht vorhanden, und das Dateiverzeichnis, in dem die Datei angelegt werden soll, lässt das Schreiben nicht zu. | |
Erweiterung | ||
| Die Datei ist vorhanden, obligatorisches Sperren von Dateien und Dateisätzen ist gesetzt, und in der Datei sind noch Dateisatzsperren vorhanden (siehe | |
| O_CREAT und | |
Erweiterung | ||
| path weist über den zugewiesenen Adressraum des Prozesses hinaus. (Ende) | |
| Ein Signal wurde während des Systemaufrufs | |
| Die angegebene Datei ist ein Dateiverzeichnis. | |
Erweiterung | ||
| Während der Übersetzung von path waren zu viele symbolische Verweise vorhanden. (Ende) | |
| Der Prozess hat zu viele Dateien geöffnet (siehe | |
| ||
Die Länge des path-Arguments überschreitet | ||
|
| Die Systemdatei-Tabelle ist voll. |
|
| Eine Komponente des Pfadnamens existiert nicht, oder path zeigt auf eine leere Zeichenkette. |
|
| Das Dateisystem hat keine Indexeinträge mehr. |
|
| Eine Komponente des Pfadnamens ist kein Dateiverzeichnis. |
|
| Die angegebene Datei ist eine Gerätedatei für ein zeichen- oder blockorientiertes Gerät, und das dieser Datei zugewiesene Gerät existiert nicht. |
|
| Die angegebene Datei steht in einem schreibgeschützten Dateisystem. |
|
| Die Datei ist eine reine Programmdatei, die gerade ausgeführt wird. |
Hinweis | Ob eine BS2000- oder eine POSIX-Datei erzeugt wird, hängt von der Programmumgebung ab. | |
Siehe auch |
|