Provided by: manpages-de-dev_0.5-4.1ubuntu1_all bug

BEZEICHNUNG

       open, creat - Öffnen und mögliches Erzeugen einer Datei

ÜBERSICHT

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

       int open(const char *pathname, int flags);
       int open(const char *pathname, int flags, mode_t mode);
       int creat(const char *pathname, mode_t mode);

BESCHREIBUNG

       open  versucht  eine  Datei  zu  öffnen, und gibt als “Returncode” eine
       Dateibeschreibung der zu öffnen versuchten Datei zurück.  (non-negative
       integer) Dieser kann in read, write, etc. Anweisungen verwendet werden.
       Die Möglichen flags dabei sind; Jeweils eine der folgenden Angaben:

       O_RDONLY, O_WRONLY or O_RDWR

       O_RDONLY öffnen der Datei zum NUR_LESEN

       O_WRONLY öffnen der Datei zum NUR_SCHREIBEN

       O_RDWR öffnen der Datei mit SCHREIBEN und LESEN Zugriff.

       Diese  flags  können  außerdem  noch  mit  einem  der  folgenden  Flags
       bitweise_ODER_verküpft werden.

       O_CREAT
              Wenn die Datei nicht besteht, so wird sie neu Angelegt.

       O_EXCL Wenn  mit  O_CREAT verwendet und die Datei schon besteht, so ist
              das ein Fehler und der open() schlägt fehl.  Siehe BUGS

       O_NOCTTY
              wenn der pathname sich auf ein Terminal Device bezieht — Siehe
              tty(4)  —  so  bekommt  der  Prozess  keine  Kontrolle  über das
              Terminal,   auch   wenn   der   Prozess   gar   kein    Terminal
              verwendet/benötigt.

       O_TRUNC
              Wenn die Datei schon besteht, so wird sie überschrieben.

       O_APPEND
              Öffnen der Datei im “Anhängen” Modus.  Anfänglich, und vor jedem
              write, wird der “Datei Pointer” auf  das  Ende  der  bestehenden
              Datei gesetzt.  Ebenso wie bei der Verwendung von lseek.

       O_NONBLOCK oder O_NDELAY
              Die  Datei wird ohne BLOCKUNG geöffnet.  Wenn in diesem Modi ein
              “SUB-System” angesprochen  wird,  wird  der  aufrufende  Prozess
              solange  warten  bis  die  Dateibeschreibung  (file  descriptor)
              zurückgegeben wird.

       O_SYNC Die Datei wird im “synchron I/O  Modi”  geöffnet.   Jeder  write
              über  die  zurückgegebene Dateibeschreibung wird den aufrufenden
              Prozess solange anhalten, bis die  Daten  physikalisch  auf  die
              angesprochene   Hardware   geschrieben  ist.   Bitte  auch  BUGS
              beachten.

       Ein Teil dieser optionalen flags kann nach dem Öffnen der  Datei  unter
       Verwendung von fcntl() Aufrufen verändert werden.

       mode  ist die Angabe der zu benutzenden Dateizugriffsrechte.  (Nur wenn
       Datei neu angelegt wird)

       Die Definition wird, wie  üblich,  durch  die  Umgebungsvariable  umask
       übernommen.  Die Zugriffsrechte der angelegten Datei werden durch (mode
       & ~umask) festgelegt.

       mode kann nur einmalig bei der Verwendung des O_CREAT “flags” verwendet
       werden; Andernfalls wird diese Anweisung ignoriert.

       creat  kann Gleichwertig zu open betrachtet werden.  Mit Vergleichbaren
       “flags” wie  O_CREAT|O_WRONLY|O_TRUNC.   creat  erstellt  jedoch  keine
       Gerätedatei - das tut mknod(2).

RETURN VALUE -- Wiedergabewert

       open  und  creat geben entweder die Dateibeschreibung file descriptor
       oder, im Fehlerfall einen RC von -1 zurück.   (Unabhangig  vom  “Erfolg
       oder Nichterfolg” der Anweisung wird die passende errno gesetzt.

FEHLER

       EEXIST pathname   existiert   schon,  und  O_CREAT  und  O_EXCL  wurden
              verwendet.

       EISDIR pathname  bezieht  sich  auf  einen  Verzeichnisnamen,  in   das
              generell  kein  Schreiben  möglich  ist.  Anm.  des Übersetzers:
              Schreiben  in  einen  “Verzeichnisnamen”  ist   generell   nicht
              möglich.

       ETXTBSY
              pathname  Es  wurde  versucht in eine binäre Datei zu schreiben,
              die gerade vom System ausgeführt wird.

       EFAULT pathname verweist auf eine Adresse  außerhalb  “  Deines  ”  zur
              Verfügung stehenden Adressraumes.

       EACCES Der  gewünschte  Zugriff  auf  die Datei ist nicht erlaubt, oder
              eines der Verzeichnisse innerhalb von  pathname  erlaubt  diesen
              Zugriff nicht.

       ENAMETOOLONG
              pathname ist zu lang.

       ENOENT Ein  Verzeichnisname  aus pathname existiert nicht, oder ist ein
              “fehlerhafter” Link.

       ENOTDIR
              Eine Komponente in pathname ist nicht wirklich ein  Verzeichnis.

       EMFILE Der laufende Prozess hat die maximal erlaubte Anzahl der offenen
              Dateien für diesen Prozess erreicht.

       ENFILE Der laufende Prozess hat die maximal erlaubte Anzahl der offenen
              Dateien des Systems erreicht.

       ENOMEM Kein Systemspeicher mehr verfügbar.

       EROFS  pathname verweist auf eine Datei in einem read-only Dateisystem,
              und es wurde versucht zu schreiben.

       ELOOP  pathname verweist auf einen symbolischen Link, der z.B.  über  “
              Umwege ” durch das Dateisystem auf sich selber zeigt.

       ENOSPC pathname sollte Angelegt werden, aber es war kein Platz mehr.

ANGEPASST FÜR

       SVID, AT&T, POSIX, X/OPEN, BSD 4.3

BUGS

       O_SYNC ist zurzeit nicht implementiert. (Stand Linux 0.99pl7)

       Bei  der  Verwendung  über  NFS  kann es zu Unstimmigkeiten, betreffend
       konkurrierender O_SYNC, O_NDELAY und O_APPEND Zugriffe kommen.

       O_EXCL funktioniert nicht über NFS.  Bei  Programmen,  die  auf  “Datei
       locking”  angewiesen sind, bzw. “vertrauen” (Systemtasks), wird/kann es
       zu Fehlern kommen.  Eine mögliche Lösung dafür ist es, eine  identische
       Datei  auf dem “lokalen” Dateisystem zu erzeugen.  Beispielsweise durch
       die Verwendung von link(2).  Danach kann mit stat(2) die  lokale  Datei
       auf eine Zunahme des “ Link Counters ” geprüft werden.  Benutze nie den
       Rückgabewert aus dem link() Aufruf.

COPYRIGHT

       Copyright © 1996 Christian Schmidt - deutsche Übersetzung

       Dieses Manual darf sowohl in der Original, als auch  in  der  deutschen
       Version   mit   folgender  Einschränkung  benutzt,  Vervielfältigt  und
       Vertrieben werden.  Dieser Copyright-Abschnitt und  der  “Header”  muss
       unverändert  in  allen  Kopien  beibehalten  werden.   Ferner  sind die
       zusätzlichen Vereinbarungen im “Header” dieses Manuals zu beachten.

SIEHE AUCH

       read(2), write(2), fcntl(2), close(2),  unlink(2),  mknod(2),  stat(2),
       umask(2), mount(2), socket(2), socket(2), fopen(3), link(2).