Provided by: manpages-de-dev_0.10-1_all bug

BEZEICHNUNG

       open, creat - Offnen und mogliches Erzeugen einer Datei

       Diese  Handbuchseite ist eventuell veraltet. Im Zweifelsfall ziehen Sie
       die englischsprachige Handbuchseite zu Rate, indem Sie

              man -LC 2 open

       eingeben.

"UBERSICHT

       #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 offnen,  und  gibt  als  "Returncode"  eine
       Dateibeschreibung der zu offnen versuchten Datei zuruck.  (non-negative
       integer) Dieser kann in read, write, etc. Anweisungen verwendet werden.
       Die Moglichen flags dabei sind; Jeweils eine der folgenden Angaben:

       O_RDONLY, O_WRONLY or O_RDWR

       O_RDONLY offnen der Datei zum NUR_LESEN

       O_WRONLY offnen der Datei zum NUR_SCHREIBEN

       O_RDWR offnen der Datei mit SCHREIBEN und LESEN Zugriff.

       Diese  flags  konnen  auBerdem  noch  mit  einem  der  folgenden  Flags
       bitweise_ODER_verk"upft 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() schlagt fehl.  Siehe BUGS

       O_NOCTTY
              wenn  der  "pathname"  sich  auf  ein Terminal Device bezieht --
              Siehe tty(4) -- so bekommt der Prozess keine Kontrolle uber  das
              Terminal,    auch   wenn   der   Prozess   gar   kein   Terminal
              verwendet/benotigt.

       O_TRUNC
              Wenn die Datei schon besteht, so wird sie uberschrieben.

       O_APPEND
              Offnen der Datei im "Anhangen" Modus.  Anfanglich, 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 geoffnet.  Wenn in diesem Modi  ein
              "SUB-System"  angesprochen  wird,  wird  der  aufrufende Prozess
              solange  warten  bis  die  Dateibeschreibung  (file  descriptor)
              zuruckgegeben wird.

       O_SYNC Die  Datei  wird  im  "synchron I/O Modi" geoffnet.  Jeder write
              uber die zuruckgegebene 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 Offnen der Datei unter
       Verwendung von fcntl() Aufrufen verandert werden.

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

       Die  Definition  wird,  wie  ublich,  durch die Umgebungsvariable umask
       ubernommen.  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
       Geratedatei - das tut mknod(2).

RETURN VALUE -- Wiedergabewert

       open und creat geben entweder die Dateibeschreibung  "file  descriptor"
       oder,  im  Fehlerfall  einen RC von -1 zuruck.  (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 moglich  ist.   Anm.   des  Ubersetzers:
              Schreiben   in   einen  "Verzeichnisnamen"  ist  generell  nicht
              moglich.

       ETXTBSY
              pathname Es wurde versucht in eine binare  Datei  zu  schreiben,
              die gerade vom System ausgefuhrt wird.

       EFAULT pathname  verweist  auf  eine  Adresse  auBerhalb " Deines " zur
              Verfugung stehenden Adressraumes.

       EACCES Der gewunschte 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 fur diesen Prozess erreicht.

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

       ENOMEM Kein Systemspeicher mehr verfugbar.

       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.  uber  "
              Umwege " durch das Dateisystem auf sich selber zeigt.

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

ANGEPASST F"UR

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

BUGS

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

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

       O_EXCL funktioniert nicht uber NFS.  Bei  Programmen,  die  auf  "Datei
       locking"  angewiesen sind, bzw. "vertrauen" (Systemtasks), wird/kann es
       zu Fehlern kommen.  Eine mogliche Losung dafur 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 " gepruft werden.  Benutze nie den
       Ruckgabewert aus dem link() Aufruf.

COPYRIGHT

       Copyright (C) 1996 Christian Schmidt - deutsche Ubersetzung

       Dieses Manual darf sowohl in der Original, als auch  in  der  deutschen
       Version   mit   folgender  Einschrankung  benutzt,  Vervielfaltigt  und
       Vertrieben werden.  Dieser Copyright-Abschnitt und  der  "Header"  muss
       unverandert  in  allen  Kopien  beibehalten  werden.   Ferner  sind die
       zusatzlichen 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).