open, _wopen

Aus RAD Studio
Wechseln zu: Navigation, Suche

Nach oben zu io.h - Index


Header-Datei

io.h, fcntl.h

Kategorie

Eingabe-/Ausgaberoutinen

Prototyp

int open(const char *path, int access [, unsigned mode]);

int _wopen(const wchar_t *path, int access [, unsigned mode]);

Beschreibung

Öffnet eine Datei zum Lesen oder Schreiben.

open öffnet die durch path bezeichnete Datei und bereitet diese entsprechend dem Wert von access zum Lesen und/oder Schreiben vor.

Um eine Datei in einem bestimmten Modus zu erstellen, können Sie der globalen Variablen _fmode den entsprechenden Wert zuweisen oder im Aufruf von open die Optionen O_CREAT und O_TRUNC über ODER mit dem gewünschten Übersetzungsmodus verknüpfen.

open("XMP",O_CREAT|O_TRUNC|O_BINARY,S_IREAD)

Erstellt eine schreibgeschützte Binärmodus-Datei namens XMP, deren Länge auf 0 Bytes verkürzt wird, falls sie bereits vorhanden ist.

Bei open wird access durch die bitweise ODER-Verknüpfung von Flags aus den folgenden Listen gebildet: Es kann nur ein Flag aus der ersten Liste angegeben werden (ein Flag muss jedoch angegeben werden). Die übrigen Flags können in jeder logischen Kombination eingesetzt werden.

Diese symbolischen Konstanten sind in fcntl.h definiert.

O_RDONLY

Nur zum Lesen öffnen.

O_WRONLY

Nur zum Schreiben öffnen.

O_RDWR

Zum Lesen und Schreiben öffnen.



O_NDELAY

Wird nicht verwendet, dient zur UNIX-Kompatibilität.

O_APPEND

Wenn dieses Bit gesetzt ist, wird der Dateizeiger vor jeder Schreiboperation an das Dateiende gesetzt.

O_CREAT

Wenn die Datei existiert, ist diese Flag-Einstellung unwirksam. Ist die Datei nicht vorhanden, wird sie erstellt und mit den Modusbits werden die Dateiattributbits wie in chmod gesetzt.

O_TRUNC

Wenn die Datei vorhanden ist, wird ihre Länge auf 0 verkürzt. Die Dateiattribute bleiben unverändert.

O_EXCL

Wird nur in Verbindung mit O_CREAT verwendet. Wenn die Datei bereits existiert, wird ein Fehler zurückgegeben.

O_BINARY

Dieses Flag kann angegeben werden, um die Datei explizit im Binärmodus zu öffnen.

O_TEXT

Dieses Flag kann angegeben werden, um die Datei explizit im Textmodus zu öffnen.



Wird weder O_BINARY noch O_TEXT angegeben, wird die Datei in dem Modus geöffnet, der durch die globale Variable _fmode festgelegt wird.

Wenn das Flag O_CREAT zum Aufbau von access verwendet wird, muss für open eine der folgenden, in sys\stat.h definierten symbolischen Konstanten als Argument mode übergeben werden.

S_IWRITE

Berechtigung zum Schreiben

S_IREAD

Berechtigung zum Lesen

S_IREAD|S_IWRITE

Berechtigung zum Lesen und Schreiben



Rückgabewert

Bei erfolgreicher Ausführung gibt open eine nicht negative Ganzzahl (das Datei-Handle) zurück. Der Dateizeiger, der die aktuelle Position innerhalb der Datei markiert, wird auf den Dateianfang gesetzt.

Bei einem Fehler gibt die Funktion open -1 zurück, und die globale Variable errno wird auf einen der folgenden Werte gesetzt:

EACCES

Permission denied (Zugriff verweigert)

EINVACC

Invalid access code (Ungültiger Zugriffscode)

EMFILE

Too many open files (Zu viele Dateien geöffnet)

ENOENT

No such file or directory (Datei oder Verzeichnis nicht gefunden)



Beispiel



 #include <string.h>
 #include <stdio.h>
 #include <fcntl.h>
 #include <io.h>
 int main(void)
 {
    int handle;
    char msg[] = "Hello world";
    if ((handle = open("TEST.$$$", O_CREAT | O_TEXT)) == -1)
    {
       perror("Error:");
       return 1;
    }
    write(handle, msg, strlen(msg));
    close(handle);
    return 0;
 }



Portabilität



POSIX Win32 ANSI C ANSI C++

open

+

+

_wopen

Nur NT