open, openat, openx, openxat, open64, open64at, open64x, open64xat, creat oder creat64 Subroutine
Zweck
Öffnet eine Datei zum Lesen oder Schreiben.
Syntax
#include <fcntl.h>
int DirFileDescriptor;
const char *Path;
int OFlag;
mode_t Mode;
int DirFileDescriptor;
const char * Path;
int OFlag;
mode_t Mode;
long Extension;
int creat (Path, Mode)
const char *Path;
mode_t Mode;int open64 (Path, OFlag [, Mode])
const char *Path;
int OFlag;
mode_t Mode; int open64at (DirFileDescriptor, Path,
OFlag [, Mode])
int DirFileDescriptor;
const char * Path;
int OFlag;
mode_t Mode; int creat64 (Path, Mode)
const char *Path;
mode_t Mode; int open64x (Path, OFlag, Mode, Extension)
char *Path;
int64_t OFlag;
mode_t Mode;
ext_t Extension; int open64xat (DirFileDescriptor, Path, OFlag, Mode, Extension)
int DirFileDescriptor;
char *Path;
int64_t OFlag;
mode_t Mode;
ext_t Extension;Beschreibung
Das Unterprogramm openat entspricht dem Unterprogramm open, wenn der Parameter DirFileDescriptor AT_FDCWD oder der Parameter Path ein absoluter Pfadname ist. Wenn DirFileDescriptor ein gültiger Dateideskriptor eines geöffneten Verzeichnisses und Path ein relativer Pfadname ist, wird Path als relativ zu dem Verzeichnis betrachtet, das mit dem DirFileDescriptor verbunden ist, und nicht als relativ zum aktuellen Arbeitsverzeichnis. Ebenso sind die Unterprogramme openxat, open64at oder open64xat äquivalent zu den Unterprogrammen openx, open64 oder open64x, genau wie openat und open.
Die Unterprogramme open, openx und creat stellen eine Verbindung zwischen der durch den Parameter Path benannten Datei und einem Dateideskriptor her. Der geöffnete Dateideskriptor wird von nachfolgenden E/A-Unterprogrammen, wie z. B. Lesen und Schreiben, für den Zugriff auf diese Datei verwendet.
Das Unterprogramm openx ist dasselbe wie das Unterprogramm open, mit dem Zusatz eines Erweiterungsparameters, der für die Verwendung durch Gerätetreiber vorgesehen ist. Das Unterprogramm creat entspricht dem Unterprogramm open mit den gesetzten Flags O_WRONLY, O_CREAT und O_TRUNC.
Der zurückgegebene Dateideskriptor ist der niedrigste Dateideskriptor, der zuvor für diesen Prozess nicht geöffnet war. Kein Prozess kann mehr als OPEN_MAX Dateideskriptoren gleichzeitig öffnen.
Der Dateioffset, der die aktuelle Position innerhalb der Datei markiert, wird auf den Anfang der Datei gesetzt. Der neue Dateideskriptor wird so definiert, dass er über Exec-Subroutinen geöffnet bleibt.
Die Unterprogramme open64 und creat64 entsprechen den Unterprogrammen open und creat, mit dem Unterschied, dass in der Beschreibung der geöffneten Datei, die mit dem zurückgegebenen Dateideskriptor verbunden ist, das Flag O_LARGEFILE gesetzt ist. Dieses Flag ermöglicht den Zugriff auf Dateien, die größer als OFF_MAX sind. Wenn der Aufrufer versucht, eine Datei zu öffnen, die größer als OFF_MAX ist und O_LARGEFILE nicht gesetzt ist, schlägt das Öffnen fehl und errno wird auf EOVERFLOW gesetzt.
In der Programmierumgebung für große Dateien wird open zu open64 und creat zu creat64 umdefiniert.
Das Unterprogramm open64x erstellt eine verschlüsselte Datei in einem Encrypting File SystemEFS) und greift darauf zu. Das Unterprogramm open64x ähnelt dem Unterprogramm openx, mit der Änderung des Parameters OFlag, der auf eine 64-Bit-Größe aktualisiert wird.
Wenn der Parameter DirFileDescriptor im Unterprogramm openat, openxat, open64at oder open64xat ohne das Open-Flag O_SEARCH geöffnet wurde, prüft das Unterprogramm anhand der aktuellen Berechtigungen des Verzeichnisses, ob eine Verzeichnissuche für dieses Verzeichnis erlaubt ist. Wenn das Verzeichnis mit dem Open-Flag O_SEARCH geöffnet wurde, führt das Unterprogramm die Prüfung für dieses Verzeichnis nicht durch.
Parameter
| Element | Beschreibung |
|---|---|
| DirFileDescriptor | Gibt den Dateideskriptor eines geöffneten Verzeichnisses an. |
| Pfad | Gibt die zu öffnende Datei an. Wenn DirFileDescriptor angegeben ist und Path ein relativer Pfadname ist, dann wird Path als relativ zu dem von DirFileDescriptor angegebenen Verzeichnis betrachtet. |
| Modus | Gibt die Lese-, Schreib-und Ausführungsberechtigungen der zu erstellenden Datei an (vom Flag O_CREAT angefordert). Ist die Datei bereits vorhanden, wird dieser Parameter ignoriert. Der Parameter Mode wird durch logische ODER-Verknüpfung eines oder mehrerer der folgenden Werte gebildet, die in der Datei <sys/modesys/mode.h definiert sind:
Die folgenden Attribute gelten nur für Dateien, die direkt ausführbar sind. Sie haben keine Bedeutung, wenn sie auf ausführbare Textdateien wie Shell-Skripte und awk-Skripte angewendet werden.
|
| Verlängerung | Stellt die Kommunikation mit Zeicheneinheitentreibern bereit, die zusätzliche Informationen benötigen oder zusätzlichen Status zurückgeben. Jeder Treiber interpretiert den Parameter Erweiterung einheitenabhängig als Wert oder als Zeiger auf einen Kommunikationsbereich. Treiber müssen angemessene Standardwerte anwenden, wenn der Parameter Erweiterung den Wert 0 hat. |
| OFlag (Flag) | Gibt den Zugriffstyp, die spezielle Öffnungsverarbeitung, den Aktualisierungstyp und den Anfangsstatus der geöffneten Datei an. Der Parameterwert wird durch logisches Verknüpfen von speziellen offenen Verarbeitungsflags mit OR erstellt. Diese Flags sind in der Datei fcntl.h definiert und werden in den folgenden Flags beschrieben. |
Flaggen, die die Zugriffsart angeben
Die folgenden OFlag (Flag) -Parameterflagwerte geben den Zugriffstyp an:
| Element | Beschreibung |
|---|---|
| O_RDONLY | Die Datei wird nur zum Lesen geöffnet. |
| O_WRONLY | Die Datei wird nur zum Schreiben geöffnet. |
| O_RDWR | Die Datei wird zum Lesen und Schreiben geöffnet. |
| O_SUCHE | Das Verzeichnis wird nur für die Suche geöffnet. Wenn der Parameter Pfad nicht auf ein vorhandenes Verzeichnis verweist, wird das Flag ignoriert. |
Flaggen, die eine spezielle offene Verarbeitung angeben
Die folgenden OFlag (Flag) -Parametermarkierungswerte geben eine spezielle Öffnungsverarbeitung an:
| Element | Beschreibung |
|---|---|
| O_CREAT | Wenn die Datei vorhanden ist, hat dieses Flag keine Auswirkungen, außer wie unter dem Flag O_EXCL-Anweisungen angegeben. Ist die Datei nicht vorhanden, wird eine reguläre Datei mit den folgenden Merkmalen erstellt:
Die vom Unterprogramm " open64 " mit dem Flag " O_CREAT geöffnete Datei muss eine verschlüsselte Datei erzeugen, wenn sich die Datei in einem verschlüsselten Verzeichnis oder Vererbungsschema befindet und der aufrufende Prozess einen offenen Schlüsselspeicher hat. Dies hat zur Folge, dass ein zufälliger symmetrischer Dateiverschlüsselungsschlüssel generiert wird, der mit dem öffentlichen Schlüssel des Benutzers verpackt und in den Metadaten der Datei gespeichert wird. |
| O_EFSON | Zusammen mit dem Flag O_CREAT erzeugt dieses Flag explizit eine verschlüsselte Datei in einem Dateisystem, das EFS aktiviert ist, und setzt die Vererbung außer Kraft. Diese Funktion ist für das Unterprogramm ' open64x verfügbar. |
| O_EFSOFF | Zusammen mit dem Flag O_CREAT überschreibt dieses Flag explizit die Übernahme, um eine nicht verschlüsselte Datei zu erstellen. Diese Funktion ist für das Unterprogramm ' open64x verfügbar. |
| O_VERZEICHNIS | Die Subroutine ist nicht erfolgreich, wenn der Parameter Pfad nicht auf ein Verzeichnis verweist. |
| O_EXCL-Anweisungen | Wenn die Flags O_EXCL-Anweisungen und O_CREAT gesetzt sind, ist das Öffnen nicht erfolgreich, wenn die Datei vorhanden ist. Hinweis: Das O_EXCL-Flag wird für Netzwerk-DateisystemeNFS) nicht vollständig unterstützt. Das NFS garantiert nicht die vorgesehene Funktion des O_EXCL-Flags.
|
| O_NSHARE | Stellt sicher, dass kein Prozess diese Datei geöffnet hat und nachfolgende Öffnungsvorgänge ausschließt. Wenn sich die Datei in einem physischen Dateisystem befindet und bereits geöffnet ist, ist dieses Öffnen nicht erfolgreich und wird sofort zurückgegeben, es sei denn, der Parameter OFlag (Flag) gibt auch das Flag O_VERZÖGERUNG an. Dieses Flag ist nur für physische Dateisysteme wirksam. Hinweis: Dieses Flag wird von NFSnicht unterstützt.
|
| O_RSHARE | Stellt sicher, dass kein Prozess diese Datei zum Schreiben geöffnet hat, und schließt nachfolgende Öffnungen zum Schreiben aus. Der aufrufende Prozess kann Schreibzugriff anfordern. Wenn sich die Datei in einem physischen Dateisystem befindet und zum Schreiben oder Öffnen mit dem Flag O_NSHARE geöffnet ist, schlägt das Öffnen fehl und wird sofort zurückgegeben, es sei denn, der Parameter OFlag (Flag) gibt auch das Flag O_VERZÖGERUNG an. Hinweis: Dieses Flag wird von NFSnicht unterstützt.
|
| O_RAW | Das Lesen oder Schreiben der verschlüsselten Datei im Rohmodus, ohne den Verschlüsselungsschlüssel zu halten. Diese Funktion ist für das Unterprogramm ' open64x verfügbar. |
| O_DEFER | Die Datei wird zur verzögerten Aktualisierung geöffnet. Änderungen an der Datei werden erst dann in den permanenten Speicher übernommen, wenn eine Operation des Unterprogramms fsync durchgeführt wird. Wenn kein fsync-Unterprogramm ausgeführt wird, werden die Änderungen beim Schließen der Datei verworfen. Hinweis: Dieses Flag wird von NFS oder JFS2nicht unterstützt und es wird ignoriert.
Anmerkung: Dieses Flag bewirkt, dass geänderte Seiten durch Paging-Bereich gesichert werden. Vor Verwendung dieses Flags müssen Sie sicherstellen, dass genügend Paging-Bereich vorhanden ist.
|
| O_NOCTTY | Dieses Flag gibt an, dass das Steuerterminal beim Öffnen nicht zugeordnet werden soll. |
| O_TRUNC | Wenn die Datei nicht vorhanden ist, hat dieses Flag keine Auswirkung. Wenn die Datei existiert, eine reguläre Datei ist und erfolgreich mit dem O_RDWR-Flag oder dem O_WRONLY-Flag geöffnet wurde, gelten alle der folgenden Punkte:
|
| O_DIRECT | Dieses Flag gibt an, dass die direkte Ein-/ausgabe für diese Datei verwendet wird, während sie geöffnet wird. |
| O_CIO | Dieses Flag gibt an, dass gleichzeitige Ein-/ausgabe (CIO) für die Datei verwendet wird, während sie geöffnet wird. Da die Implementierung von gleichzeitigen Eingabeprogrammen und Ausgabeprogrammen den direkten E/A-Pfad verwendet (mit spezifischeren Anforderungen zur Verbesserung der Leistung für die Ausführung der Datenbank im Dateisystem), überschreibt dieses Flag das Flag O_DIREKT , wenn die beiden Optionen gleichzeitig angegeben werden. Die Länge der Daten, die gelesen oder geschrieben werden sollen, und die relative Position der Datei müssen seitenorientiert sein, damit sie als direkte Ein-/Ausgabe mit gleichzeitigen Ein-und Ausgabeprogrammen übertragen werden kann. Das Flag O_CIO ist exklusiv. If the file is opened in any other way (for example, using the O_DIREKT flag or opening the file normally), the open will fail. Wenn die Datei mit dem Flag O_CIO und einem anderen Prozess zum Öffnen der Datei auf eine andere Weise geöffnet wird, schlägt das Öffnen fehl. Das O_CIO-Flag verhindert auch den Zugriff des Unterprogramms mmap und des Unterprogramms shmat auf die Datei. Das Unterprogramm mmap und das Unterprogramm shmat geben EINVAL zurück, wenn sie auf eine Datei angewendet werden, die mit dem Flag O_CIO geöffnet wurde. |
| O_CIOR | Dieses Flag gibt an, dass die gleichzeitige Ein-/Ausgabe für die Datei verwendet wird, während sie geöffnet wird. Dieses Flag kann nur in Verbindung mit O_CIO verwendet werden. Außerdem gibt dieses Flag an, dass ein anderer Prozess die Datei im Lesezugriffsmodus öffnen kann. Alle anderen Methoden zum Öffnen der Datei schlagen fehl. Dieses Flag ist nur mit der Schnittstelle open64x () verfügbar. Die anderen offenen Varianten erlauben nur Flags, die in den niederwertigen 32 Bits definiert sind. |
| O_MOMENTAUFNAHME | Die zu öffnende Datei enthält eine JFS2 -Momentaufnahme. Nachfolgende Leseaufrufe, die diesen Dateideskriptor verwenden, lesen den gekochten Snapshot und nicht die rohen Snapshot-Blöcke. Für eine Momentaufnahme darf nur ein aktiver offener Dateideskriptor vorhanden sein. Die Option O_SNAPSHOT ist nur für den externen Snapshot verfügbar. |
Das Unterprogramm open ist nicht erfolgreich, wenn eine der folgenden Bedingungen erfüllt ist:
- Die Datei unterstützt erzwungene Satzsperren und ein anderer Prozess hat einen Teil der Datei gesperrt.
- Die Datei befindet sich in einem physischen Dateisystem und ist bereits mit dem Flag O_RSHARE oder O_NSHARE geöffnet.
- Die Datei lässt keinen Schreibzugriff zu.
- Die Datei ist bereits für verzögerte Aktualisierung geöffnet.
Kennzeichen, das die Art der Aktualisierung angibt
Ein Programm kann eine gewisse Steuerung anfordern, wann Aktualisierungen für eine reguläre Datei, die für Schreibzugriff geöffnet wird, permanent gemacht werden sollen. Die folgenden OFlag (Flag) -Parameterwerte geben den Typ der ausgeführten Aktualisierung an:
| Element | Beschreibung |
|---|---|
| O_SYNC: | Wenn diese Option festgelegt ist, werden Aktualisierungen für reguläre Dateien und Schreibvorgänge auf Blockeinheiten synchron aktualisiert. Die Dateiaktualisierung wird von den folgenden Subroutinen ausgeführt:
Bei der Rückkehr von einer Subroutine, die eine synchrone Aktualisierung ausführt (eine beliebige der vorhergehenden Subroutinen, wenn das Flag O_SYNC gesetzt ist), wird das Programm sichergestellt, dass alle Daten für die Datei in den permanenten Speicher geschrieben wurden, auch wenn die Datei auch für eine verzögerte Aktualisierung geöffnet ist. |
| Element | Beschreibung |
|---|---|
| O_DSYNC: | Wenn diese Option festgelegt ist, werden die Dateidaten sowie alle Dateisystemmetadaten, die zum Abrufen der Dateidaten erforderlich sind, an ihre permanente Speicherposition geschrieben. Dateiattribute wie Zugriffs-oder Änderungszeiten sind nicht erforderlich, um Dateidaten abzurufen, und als solche werden sie nicht garantiert an ihre permanenten Speicherpositionen geschrieben, bevor die vorhergehenden Subroutinen zurückkehren. (Subroutinen, die in der Beschreibung von O_SYNC aufgelistet sind). |
| O_SYNC | O_DSYNC: | Wenn beide Flags gesetzt sind, werden die Daten der Datei und alle Metadaten der Datei (einschließlich Zugriffszeit) an ihre permanenten Speicherpositionen geschrieben. |
| Element | Beschreibung |
|---|---|
| O_RSYNC: | Dieses Flag wird in Kombination mit O_SYNC oder _Synchronisierenverwendet und erweitert ihr Schreibverhalten auf Leseoperationen. Wenn beispielsweise O_SYNC und R_Synchronisation festgelegt sind, wird eine Leseoperation erst zurückgegeben, wenn die Daten der Datei und alle Metadaten der Datei (einschließlich Zugriffszeit) an ihre permanenten Speicherpositionen geschrieben wurden. |
Flaggen, die den Anfangszustand der offenen Datei definieren
Die folgenden OFlag (Flag) -Parameterflagwerte definieren den Anfangsstatus der geöffneten Datei:
| Element | Beschreibung |
|---|---|
| O_ANWENDE | Der Dateizeiger wird vor jeder Schreiboperation auf das Ende der Datei gesetzt. |
| O_VERZÖGERUNG | Legt fest, daß der Prozeß blockiert wird, wenn das Unterprogramm open nicht erfolgreich war, weil der Zugriff auf ein physisches Dateisystem, der durch das O_RSHARE-Flag oder das O_NSHARE-Flag erforderlich ist, nicht gewährt werden konnte, anstatt den Fehlercode ETXTBSY zurückzugeben. |
| O_NVERZÖGERUNG | Öffnet ohne Verzögerung. |
| O_NICHT_BLOCK | Gibt an, dass das geöffnete Unterprogramm nicht blockiert werden soll. |
Das O_NDELAY-Flag und das O_NONBLOCK-Flag sind bis auf den von den Lese- und Schreibunterprogrammen zurückgegebenen Wert identisch. Diese Flags bedeuten, dass der Prozess nicht im Status eines Objekts blockiert, sondern bei der Eingabe oder Ausgabe in eine reguläre Datei oder Blockeinheit blockiert wird.
Das Flag O_VERZÖGERUNG ist nur relevant, wenn es mit dem Flag O_NSHARE oder O_RSHARE verwendet wird. Sie bezieht sich nicht auf die Flags O_NVERZÖGERUNG und O_NICHT_BLOCK .
Allgemeine Hinweise zu OFlag-Parameterflags
Das Flag O_CREAT wirkt sich sofort aus, auch wenn die Datei mit dem Flag O_DEFER geöffnet wird.
Wenn eine Datei in einem physischen Dateisystem mit dem Flag O_NSHARE oder dem Flag O_RSHARE geöffnet wird und die Datei bereits mit einem Zugriffskonflikt geöffnet ist, kann Folgendes auftreten:
- Wenn das Flag O_DELAY nicht gesetzt ist (Standardeinstellung), ist das Unterprogramm open nicht erfolgreich.
- Wenn das Flag O_DELAY gesetzt ist, blockiert das Unterprogramm open so lange, bis es keinen Konflikt mehr mit open gibt. Es gibt keine Deadlock-Erkennung für Prozesse, die das Flag O_VERZÖGERUNG verwenden.
Beim Öffnen einer Datei in einem physischen Dateisystem, das bereits mit dem Flag O_NSHARE geöffnet wurde, kann Folgendes auftreten:
- Wenn das Flag O_VERZÖGERUNG abgewählt ist (Standardeinstellung), ist das Öffnen sofort nicht erfolgreich.
- Wenn das Flag O_VERZÖGERUNG gesetzt ist, werden die offenen Blöcke blockiert, bis keine Konflikte beim Öffnen mehr auftreten.
Wenn Sie eine Datei mit dem Flag O_RDWR, O_WRONLYoder O_TRUNC öffnen und die Datei bereits mit dem Flag O_RSHARE geöffnet ist:
- Wenn das Flag O_VERZÖGERUNG abgewählt ist (Standardeinstellung), ist das Öffnen sofort nicht erfolgreich.
- Wenn das Flag O_VERZÖGERUNG gesetzt ist, werden die offenen Blöcke blockiert, bis keine Konflikte beim Öffnen mehr auftreten.
Beim Öffnen eines First In/First Out (FIFO) mit dem Flag O_RDONLY kann Folgendes auftreten:
- Wenn die O_NDELAY- und O_NONBLOCK-Flags nicht gesetzt sind, wird die geöffnete Datei blockiert, bis ein Prozess die Datei zum Schreiben öffnet. Wenn die Datei bereits zum Schreiben geöffnet ist (auch durch den aufrufenden Prozess), kehrt das Unterprogramm open ohne Verzögerung zurück.
- Wenn das Flag O_NVERZÖGERUNG oder das Flag O_NICHT_BLOCK gesetzt ist, ist das Öffnen sofort erfolgreich, auch wenn kein Prozess das FIFO zum Schreiben geöffnet hat.
Beim Öffnen einer FIFO-Warteschlange mit dem Flag O_WRONLY kann Folgendes auftreten:
- Wenn die Flags O_NVERZÖGERUNG und O_NICHT_BLOCK abgewählt sind (Standardeinstellung), wird das Öffnen blockiert, bis ein Prozess die Datei zum Lesen öffnet. Wenn die Datei bereits zum Schreiben geöffnet ist (auch durch den aufrufenden Prozess), kehrt das Unterprogramm open ohne Verzögerung zurück.
- Wenn das Flag O_NDELAY oder das Flag O_NONBLOCK gesetzt ist, gibt das Unterprogramm open einen Fehler zurück, wenn kein Prozess die Datei gerade zum Lesen geöffnet hat.
Beim Öffnen einer Blockspezial-oder Zeichengerätedatei, die nicht blockierende Öffnungsvorgänge unterstützt, wie z. B. eine Terminaleinheit, kann Folgendes auftreten:
- Wenn die Flags O_NVERZÖGERUNG und O_NICHT_BLOCK abgewählt sind (Standardeinstellung), werden die offenen Blöcke blockiert, bis die Einheit bereit oder verfügbar ist.
- Wenn das Flag O_NDELAY oder das Flag O_NONBLOCK gesetzt ist, kehrt das Unterprogramm open zurück, ohne darauf zu warten, dass das Gerät bereit oder verfügbar ist. Das nachfolgende Verhalten der Einheit ist einheitenspezifisch.
Alle zusätzlichen Informationen über die Auswirkungen der O_NDELAY-, O_RSHARE-, O_NSHARE- und O_DELAY-Flags auf ein bestimmtes Gerät sind in der Beschreibung der speziellen Datei für den Gerätetyp dokumentiert, falls vorhanden.
Wenn sich der Pfad auf eine STREAMS-Datei bezieht, kann oflag aus O_NONBLOCK ODER mit entweder O_RDONLY, O_WRONLY oder O_RDWR konstruiert werden. Andere Flagwerte gelten nicht für STREAMS-Einheiten und haben keine Auswirkungen auf sie. Der Wert O_NICHT_BLOCK wirkt sich auf die Operation von STREAMS-Treibern und bestimmten Funktionen aus, die auf Dateideskriptoren angewendet werden, die STREAMS-Dateien zugeordnet sind. Für STREAMS-Treiber ist die Implementierung von O_NICHT_BLOCK einheitenspezifisch.
Wenn path die Controllerseite eines Pseudoterminals benennt, ist nicht festgelegt, ob open die Workerseite sperrt, so dass sie nicht geöffnet werden kann. Portable Anwendungen müssen unlockpt aufrufen, bevor sie die Worker-Seite öffnen.
Das Flag O_SUCHE hat denselben Wert wie das Flag O_Exec . Ab AIX® 7.1schlagen Programme, die das Flag O_EXEC an ein geöffnetes Verzeichnis übergeben, möglicherweise fehl, da der offene Code auch die Suchberechtigung für das Verzeichnis überprüft.
Der größte Wert, der in einem Objekt vom Typ off_t korrekt dargestellt werden kann, wird als maximaler Offset in der Beschreibung der geöffneten Datei festgelegt.
Rückgabewerte
Nach erfolgreicher Beendigung wird der Dateideskriptor als nicht negative Ganzzahl zurückgegeben. Andernfalls wird ein Wert von -1 zurückgegeben, es werden keine Dateien erstellt oder geändert und die globale Variable errno wird gesetzt, um den Fehler anzuzeigen.
Fehlercodes
Die Unterprogramme open,openat openx, openxat, open64, open64at, open64x, open64xat und creat sind nicht erfolgreich und die genannte Datei wird nicht geöffnet, wenn eine oder mehrere der folgenden Bedingungen erfüllt sind:
| Element | Beschreibung |
|---|---|
| EACCES | Eine der folgenden
Bedingungen ist aufgetreten:
|
| EAGAIN | Das Flag O_TRUNC wird gesetzt und die benannte Datei enthält eine Satzsperre, deren Eigner ein anderer Prozess ist. |
| EDOQUOT | Das Verzeichnis, in dem der Eintrag für den neuen Link platziert wird, kann nicht erweitert werden, oder ein I-Node konnte der Datei nicht zugeordnet werden, weil das Benutzer-oder Gruppenkontingent an Plattenblöcken oder I-Nodes in dem Dateisystem, das das Verzeichnis enthält, erschöpft ist. |
| EEXIST | Die Flags O_CREAT und O_EXCL-Anweisungen sind gesetzt und die benannte Datei ist vorhanden. |
| EFBIG | Es wurde versucht, eine Datei zu schreiben, die den Dateigrenzwert des Prozesses oder die maximale Dateigröße überschreitet. Wenn der Benutzer die Umgebungsvariable XPG_SUS_ENV=ON vor der Ausführung des Prozesses gesetzt hat, wird das Signal SIGXFSZ an den Prozess gesendet, wenn die Dateigrößengrenze des Prozesses überschritten wird. |
| EINTR | Während des Unterprogramms open wurde ein Signal abgefangen. |
| EIO | Der Pfadparameter benennt eine STREAMS-Datei und es ist ein Fehler aufgetreten. |
| EISVERZ | Benannte Datei ist ein Verzeichnis und Schreibzugriff ist erforderlich (das Flag O_WRONLY oder O_RDWR wird im Parameter OFlag (Flag) festgelegt). |
| EMDATEI | Der Systemgrenzwert für offene Dateideskriptoren pro Prozess wurde bereits erreicht (OPEN_MAX). |
| ENAMETOOLONG | Die Länge des Parameters Pfad überschreitet den Systemgrenzwert (PFAD_MAX) oder eine Pfadnamenkomponente ist länger als MAX. NAMEN und _POSIX_NO_TRUNC ist wirksam. |
| ENDATEI | Die Systemdateitabelle ist voll. |
| ENOENT | Das Flag O_CREAT ist nicht gesetzt und die angegebene Datei ist nicht vorhanden oder das Flag O_CREAT ist nicht gesetzt und entweder ist das Pfadpräfix nicht vorhanden oder der Parameter Pfad verweist auf eine leere Zeichenfolge. |
| ENOTDIR | Das Flag O_VERZEICHNIS ist gesetzt und der Pfadparameter verweist nicht auf ein vorhandenes Verzeichnis. |
| ENOMEM | Der Parameter Pfad benennt eine STREAMS-Datei und das System kann keine Ressourcen zuordnen. |
| ENOSPC | Das Verzeichnis oder Dateisystem, das die neue Datei enthalten würde, kann nicht erweitert werden. |
| ENOSR | Das Argument Path benennt eine STREAMS-basierte Datei und das System kann keinen STREAM zuordnen. |
| ENOTDIR | Eine Komponente des von der Komponente Pfad angegebenen Pfadpräfix ist kein Verzeichnis. |
| ENXIO | Eine der folgenden
Bedingungen ist aufgetreten:
|
| ÜBERLAUF | Im 32-Bit-Kernel in JFS2wurde eine Datei mit mehr als einem Terabyte geöffnet. Die genaue maximale Größe ist in MAX_FILESIZE angegeben und kann mit dem Systemaufruf pathconf ermittelt werden. Jede größere Datei kann nicht auf dem 32-Bit-Kernel geöffnet werden, sondern kann auf dem 64-Bit-Kernel erstellt und geöffnet werden. |
| EROFS | Die benannte Datei befindet sich in einem schreibgeschützten Dateisystem und Schreibzugriff ist erforderlich (entweder O_WRONLY, O_RDWR, O_CREAT (wenn die Datei nicht vorhanden ist) oder das Flag O_TRUNC ist im Parameter OFlag (Flag) gesetzt). |
| ETXTBSYCity in SY | Die Datei befindet sich in einem physischen Dateisystem und ist bereits in einer Weise (mit dem Flag O_RSHARE oder O_NSHARE ) geöffnet, die dieses Öffnen ausschließt, oder das Flag O_NSHARE oder O_RSHARE wurde mit dem Flag O_NVERZÖGERUNG angefordert, und in einem physischen Dateisystem ist ein Konflikt aufgetreten. |
| ENOATTR | In diesem Prozess wurde kein Keystore geladen. |
| ESAD | Im Keystore ist kein Schlüssel für den Eigner der neuen Datei verfügbar. |
| Element | Beschreibung |
|---|---|
| ÜBERLAUF | Bei einem Aufruf von open and creat war die Datei bereits vorhanden, ihre Größe war größer als OFF_MAX und das Flag O_LARGEFILE war nicht gesetzt. |
Die Unterprogramme open, openx, open64x und creat sind erfolglos, wenn eine der folgenden Bedingungen erfüllt ist:
| Element | Beschreibung |
|---|---|
| EFAULT | Der Parameter Pfad verweist außerhalb des zugeordneten Adressraums des Prozesses. |
| EINVAL | Der Wert des Parameters OFlag (Flag) ist ungültig. |
| ELOOP (SCHLEIFE) | Beim Umsetzen des Parameters Pfad wurden zu viele symbolische Links gefunden. |
| ETXTBSYCity in SY | Die durch den Parameter Pfad angegebene Datei ist eine reine Prozedurdatei (gemeinsam genutzte Textdatei), die momentan ausgeführt wird, und das Flag O_WRONLY oder O_RDWR wird im Parameter OFlag (Flag) gesetzt. |
Die Unterprogramme openat, openxat, open64at und open64xat sind nicht erfolgreich und die genannte Datei wird nicht geöffnet, wenn eine oder mehrere der folgenden Bedingungen erfüllt sind:
| Element | Beschreibung |
|---|---|
| EACCES | Das Verzeichnis, auf das der Parameter DirFileDescriptor zeigt, wurde nicht mit dem Flag O_SEARCH geöffnet, und die Suchberechtigung für das Verzeichnis ist verweigert. |
| EBADF | Der Parameter Path gibt keinen absoluten Pfad an und der Parameter DirFileDescriptor ist weder AT_FDCWD noch ein gültiger Dateideskriptor. |
| ENOTDIR | Der Parameter Pfad gibt keinen absoluten Pfad an und der Parameter VerzeichnisDateideskriptor ist weder AT_FDCWD noch ein Dateideskriptor, der einem Verzeichnis zugeordnet ist. |