Imported tab->space correction by redhat
[infodrom/manpages-de] / man2 / open.2
1 .\" Hey Emacs! This file is -*- nroff -*- source.
2 .\"
3 .\" This manpage is Copyright (C) 1992 Drew Eckhardt;
4 .\"                               1993 Michael Haardt, Ian Jackson.
5 .\"
6 .\" Copyright 1996 C.Schmidt - deutsche Übersetzung (c.schmidt@ius.gun.de)
7 .\" Interner Versionslevel (Deutsche Version) : 0.1
8 .\" nur übersetzt, nicht korrekturgelesen...
9 .\"
10 .\" [Some polishing - aeb. In fact this text is so bad that it has to
11 .\" be redone.]
12 .\"
13 .\" Wenn jemand sich über Rechtschreibfehler bzw. eine fehlerhafte Über-
14 .\" setzung aufregen möchte so kann er das /dev/null mitteilen.
15 .\" (Schließlich übersetze ich diese Dinger um meine Englischkenntnisse
16 .\"  aufzubessern...)
17 .\"
18 .\" KONSTRUKTIVE Kritik oder ein netter Hinweis auf Fehler, aller
19 .\" Art, würden mich aber freuen. Danke!
20 .\"
21 .\" Nach dem Übersetzen dieser Manualpage muss ich "vermeindlich
22 .\" schlecht eingedeutschte Bedinungsanleitungen" auch aus einem
23 .\" Blickwinkel betrachten ;-)))
24 .\"
25 .\" Folgendes lass ich mal so steh'n ;-)
26 .\"
27 .\" Permission is granted to make and distribute verbatim copies of this
28 .\" manual provided the copyright notice and this permission notice are
29 .\" preserved on all copies.
30 .\"
31 .\" Permission is granted to copy and distribute modified versions of this
32 .\" manual under the conditions for verbatim copying, provided that the
33 .\" entire resulting derived work is distributed under the terms of a
34 .\" permission notice identical to this one
35 .\" 
36 .\" Since the Linux kernel and libraries are constantly changing, this
37 .\" manual page may be incorrect or out-of-date.  The author(s) assume no
38 .\" responsibility for errors or omissions, or for damages resulting from
39 .\" the use of the information contained herein.  The author(s) may not
40 .\" have taken the same level of care in the production of this manual,
41 .\" which is licensed free of charge, as they might when working
42 .\" professionally.
43 .\" 
44 .\" Formatted or processed versions of this manual, if unaccompanied by
45 .\" the source, must acknowledge the copyright and authors of this work.
46 .\"
47 .\" Modified Wed Jul 21 22:42:16 1993 by Rik Faith (faith@cs.unc.edu)
48 .\" Modified Sun Aug 21 18:18:14 1994: Michael Haardt's NFS diffs were
49 .\"          applied by hand (faith@cs.unc.edu).
50 .\"
51 .TH OPEN 2 "21. Juli 1993" "Linux 0.99.7" "Systemaufrufe"
52 .SH BEZEICHNUNG
53 open, creat \- Öffnen und mögliches Erzeugen einer Datei
54 .SH ÜBERSICHT
55 .nf
56 .B #include <sys/types.h>
57 .B #include <sys/stat.h>
58 .B #include <fcntl.h>
59 .sp
60 .BI "int open(const char *" pathname ", int " flags );
61 .BI "int open(const char *" pathname ", int " flags ", mode_t " mode );
62 .BI "int creat(const char *" pathname ", mode_t " mode );
63 .fi
64 .SH BESCHREIBUNG
65 .B open
66 versucht eine 
67 .I Datei 
68 zu öffnen, und gibt als \(lqReturncode\(rq eine Dateibeschreibung
69 der zu öffnen versuchten Datei zurück.  (non-negative integer)
70 Dieser kann in
71 .BR read ", " write ", etc. Anweisungen verwendet werden."
72 Die Möglichen
73 .I flags
74 dabei sind; Jeweils eine der folgenden Angaben:
75 .PP
76 .BR O_RDONLY ", " O_WRONLY " or " O_RDWR
77
78 .I O_RDONLY
79 öffnen der Datei zum NUR_LESEN
80
81 .I O_WRONLY
82 öffnen der Datei zum NUR_SCHREIBEN
83
84 .I O_RDWR
85 öffnen der Datei mit SCHREIBEN und LESEN Zugriff.
86 .PP
87 Diese 
88 .I flags
89 können außerdem noch mit einem der folgenden Flags
90 .B bitweise_ODER_verküpft
91 werden.
92 .TP
93 .B O_CREAT
94 Wenn die Datei nicht besteht, so wird sie neu Angelegt.
95 .TP
96 .B O_EXCL
97 Wenn mit 
98 .BR O_CREAT 
99 verwendet und die Datei schon besteht, so ist das ein Fehler und der
100 .B open()
101 schlägt fehl.
102 .I Siehe BUGS
103 .TP
104 .B O_NOCTTY
105 wenn der
106 .I \(lqpathname\(rq
107 sich auf ein Terminal Device bezieht \(em Siehe
108 .BR tty (4)
109 \(em so bekommt der Prozess keine Kontrolle über das Terminal, auch wenn
110 der Prozess gar kein Terminal verwendet/benötigt.
111 .TP
112 .B O_TRUNC
113 Wenn die Datei schon besteht, so wird sie überschrieben.
114 .TP
115 .B O_APPEND
116 Öffnen der Datei im \(lqAnhängen\(rq Modus.  Anfänglich, und
117 vor jedem 
118 .BR write ,
119 wird der \(lqDatei Pointer\(rq auf das Ende der bestehenden
120 Datei gesetzt.  Ebenso wie bei der Verwendung von
121 .BR lseek.
122 .TP
123 .BR O_NONBLOCK " oder " O_NDELAY
124 Die Datei wird ohne BLOCKUNG geöffnet.
125 Wenn in diesem Modi ein \(lqSUB-System\(rq angesprochen wird, wird
126 der aufrufende Prozess solange warten bis die Dateibeschreibung
127 .B "(file descriptor)"
128 zurückgegeben wird.
129 .TP 
130 .B O_SYNC
131 Die Datei wird im \(lqsynchron I/O Modi\(rq geöffnet.
132 Jeder
133 .BR write
134 über die zurückgegebene Dateibeschreibung wird den aufrufenden Prozess
135 solange anhalten, bis die Daten 
136 .I physikalisch
137 auf die angesprochene Hardware geschrieben ist.
138 Bitte auch 
139 .I BUGS
140 beachten.
141 .PP
142 Ein Teil dieser optionalen 
143 .I flags
144 kann nach dem Öffnen der Datei unter Verwendung von
145 .B fcntl()
146 Aufrufen verändert werden.
147
148 .I mode 
149 ist die Angabe der zu benutzenden Dateizugriffsrechte.  (Nur wenn Datei neu
150 angelegt wird)
151
152 Die Definition wird, wie üblich, durch die Umgebungsvariable
153 .BR umask 
154 übernommen.  Die Zugriffsrechte der angelegten Datei werden durch 
155 .BR "(mode & ~umask)"
156 festgelegt.
157
158 .I mode
159 kann nur einmalig bei der Verwendung des
160 .B O_CREAT
161 \(lqflags\(rq verwendet werden; Andernfalls wird diese Anweisung ignoriert.
162
163 .I creat
164 kann Gleichwertig zu
165 .I open
166 betrachtet werden.
167 Mit Vergleichbaren \(lqflags\(rq wie
168 .BR O_CREAT|O_WRONLY|O_TRUNC .
169 .I creat
170 erstellt jedoch keine Gerätedatei - das tut
171 .IR mknod (2).
172
173 .SH "RETURN VALUE -- Wiedergabewert"
174
175
176 .BR open " und " creat
177 geben entweder die Dateibeschreibung 
178 .I \(lqfile descriptor\(rq 
179 oder, im
180 Fehlerfall einen RC von \-1 zurück.
181 (Unabhangig vom \(lqErfolg oder Nichterfolg\(rq der Anweisung wird die
182 passende
183 .I errno
184 gesetzt.
185
186 .SH FEHLER
187 .TP
188 .B EEXIST
189 .I pathname
190 existiert schon, und
191 .BR O_CREAT " und " O_EXCL
192 wurden verwendet.
193 .TP
194 .B EISDIR
195 .I pathname
196 bezieht sich auf einen Verzeichnisnamen, in das generell kein Schreiben möglich ist.
197 Anm.  des Übersetzers: Schreiben in einen \(lqVerzeichnisnamen\(rq ist
198 generell nicht möglich.
199 .TP
200 .B ETXTBSY 
201 .I pathname
202 Es wurde versucht 
203 in eine binäre Datei zu schreiben, die gerade vom System ausgeführt wird.
204 .TP
205 .B EFAULT
206 .IR pathname
207 verweist auf eine Adresse außerhalb \(lq Deines \(rq zur Verfügung
208 stehenden Adressraumes.
209 .TP
210 .B EACCES
211 Der gewünschte Zugriff auf die Datei ist nicht erlaubt, oder eines
212 der Verzeichnisse innerhalb von
213 .IR pathname
214 erlaubt diesen Zugriff nicht.
215 .TP
216 .B ENAMETOOLONG
217 .IR pathname " ist zu lang."
218 .TP
219 .B ENOENT
220 Ein Verzeichnisname aus
221 .I pathname
222 existiert nicht, oder ist ein \(lqfehlerhafter\(rq Link.
223 .TP
224 .B ENOTDIR
225 Eine Komponente in
226 .I pathname
227 ist nicht wirklich ein Verzeichnis.
228 .TP
229 .B EMFILE
230 Der laufende Prozess hat die maximal erlaubte Anzahl der offenen Dateien
231 für diesen Prozess erreicht.
232 .TP
233 .B ENFILE
234 Der laufende Prozess hat die maximal erlaubte Anzahl der offenen Dateien
235 des Systems erreicht.
236 .TP
237 .B ENOMEM
238 Kein Systemspeicher mehr verfügbar.
239 .TP 
240 .B EROFS
241 .I pathname 
242 verweist auf eine Datei in einem read-only Dateisystem, und es wurde
243 versucht zu schreiben.
244 .TP
245 .B ELOOP
246 .I pathname
247 verweist auf einen symbolischen Link, der z.B. über
248 \(lq Umwege \(rq durch das Dateisystem auf sich selber zeigt.
249 .TP
250 .B ENOSPC
251 .I pathname 
252 sollte Angelegt werden, aber es war kein Platz mehr.
253
254 .SH "ANGEPASST FÜR"
255 SVID, AT&T, POSIX, X/OPEN, BSD 4.3
256 .SH BUGS
257 .B O_SYNC
258 ist zurzeit nicht implementiert. (Stand Linux 0.99pl7)
259
260 Bei der Verwendung über NFS kann es zu Unstimmigkeiten, betreffend
261 konkurrierender
262 .BR O_SYNC ", " O_NDELAY " und " O_APPEND 
263 Zugriffe kommen.
264
265 .B O_EXCL
266 funktioniert nicht über NFS.  Bei Programmen, die auf \(lqDatei locking\(rq
267 angewiesen sind, bzw. \(lqvertrauen\(rq (Systemtasks), wird/kann es zu
268 Fehlern kommen.  Eine mögliche Lösung dafür ist es, eine identische Datei
269 auf dem \(lqlokalen\(rq Dateisystem zu erzeugen.
270 Beispielsweise durch die Verwendung von
271 .BR link (2) .
272 Danach kann mit
273 .BR stat (2)
274 die lokale Datei auf eine Zunahme des \(lq Link Counters \(rq 
275 geprüft werden.
276 Benutze 
277 .B nie
278 den Rückgabewert aus dem
279 .B link()
280 Aufruf.
281
282 .SH COPYRIGHT
283 Copyright \(co 1996 Christian Schmidt - deutsche Übersetzung
284 .PP
285 Dieses Manual darf sowohl in der Original, als auch in der deutschen
286 Version mit folgender Einschränkung benutzt, Vervielfältigt und Vertrieben
287 werden.  Dieser Copyright-Abschnitt und der \(lqHeader\(rq muss unverändert
288 in allen Kopien beibehalten werden.  Ferner sind die zusätzlichen
289 Vereinbarungen
290 im \(lqHeader\(rq dieses Manuals zu beachten.
291  
292 .SH "SIEHE AUCH"
293 .BR read (2),
294 .BR write (2),
295 .BR fcntl (2),
296 .BR close (2),
297 .BR unlink (2),
298 .BR mknod (2),
299 .BR stat (2),
300 .BR umask (2),
301 .BR mount (2),
302 .BR socket (2),
303 .BR socket (2),
304 .BR fopen (3),
305 .BR link (2).
306