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

BEZEICHNUNG

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

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

              man -LC 2 open

       eingeben.

Ü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).