Linux.pl
Opcje wyszukiwania podręcznika man:
Lista stron man zaczynających się od znaku:
A   B   C   D   E   F   G   H   I   J   K   L   M   N   O   P   Q   R   S   T   U   V   W   X   Y   Z   ALPHA   NUM   OTHER   ALL
FOPEN(3)                Podręcznik programisty Linuksa                FOPEN(3)

NAZWA
       fopen, fdopen, freopen - funkcje otwarcia strumienia

SKŁADNIA
       #include <stdio.h>

       FILE *fopen(const char *path, const char *mode);
       FILE *fdopen(int fildes, const char *mode);
       FILE *freopen(const char *path, const char *mode, FILE *stream);

OPIS
       Funkcja  fopen  otwiera plik, którego nazwę wskazuje path i wiąże z nim
       strumień.

       Argument  mode  wskazuje  na  łańcuch  rozpoczynający  się   jednym   z
       poniższych ciągów (mogą po nich występować dodatkowe znaki):

       r      Otwarcie pliku tekstowego do odczytu. Strumień wskazuje początek
              pliku.

       r+     Otwarcie pliku do odczytu i zapisu. Strumień  wskazuje  początek
              pliku.

       w      Usunięcie  zawartości  pliku  lub  utworzenie  nowego pliku tek-
              stowego do zapisu.  Strumień wskazuje początek pliku.

       w+     Otwarcie do odczytu i zapisu. Jeśli plik nie  istnieje,  zostaje
              utworzony, w przeciwnym wypadku jego zawartość zostaje usunięta.
              Strumień wskazuje początek pliku.

       a      Otwarcie do dopisywania (zapisu na końcu pliku). Jeśli plik  nie
              istnieje,  zostaje utworzony. Strumień wskazuje na koniec pliku.

       a+     Otwarcie do odczytu i dopisywania (zapisu na końcu pliku). Jeśli
              plik  nie  istnieje,  zostaje  utworzony.  Strumień  wskazuje na
              koniec pliku.

       Łańcuch mode może także zawierać literę ``b'' zarówno jak ostatni  znak
       jak  też  jako  znak umeszczony pomiędzy znakami dowolnego dwuznakowego
       łańcucha opisanego  powyżej.   Służy  to  wyłącznie  zgodności  z  ANSI
       X3.159-1989  (``ANSI  C'')  i  nie  powoduje żadnego efektu, ``b'' jest
       ignorowane we wszystkich systemach zgodnych z POSIX, włączając Linuksa.
       (Inne  systemy  mogą  różnie  traktować pliki tekstowe i pliki binarne.
       Dodanie ``b'' może być dobrym pomysłem, jeśli  wykonywane  są  operacje
       I/O  dla  pliku binarnego a przewidywane jest przeniesienie programu do
       środowisk nieuniksowych.)

       Wszystkie      pliki      będą      tworzone      z       uprawnieniami
       S_IRUSR|S_IWUSR|S_IRGRP|S_IWGRP|S_IROTH|S_IWOTH (0666), zmodyfikowanymi
       przez wartość umask procesu (patrz umask(2)).

       Odczyt i zapis może występować w strumieniu do zapisu/odczytu w  dowol-
       nej  kolejności.  Należy zauważyć, że ANSI C wymaga interwencji funkcji
       ustalającej pozycję pliku pomiędzy zapisem i odczytem, chyba  że  oper-
       acja  odczytu  napotka  koniec  pliku.   (Jeśli  ten  warunek  nie jest
       spełniony, operacja  odczytu  może  zwrócić  wynik  innego  zapisu  niż
       ostatni.)   Tak  więc  dobrą  zasadą (i czasami konieczną pod Linuksem)
       jest wstawianie funkcji fseek lub fgetpos pomiędzy operacjami zapisu  i
       odczytu  na  takim  strumieniu.  Ta operacja może być pozornym rozkazem
       pustym, no-op, (tak jak w fseek(..., 0L, SEEK_CUR) wywoływanym  w  celu
       wykorzystania ubocznych skutków synchronizujących.

       Otwarcie  pliku  w  trybie  dopisywania  (a  jako  pierwszy  znak mode)
       powoduje, że wszystkie późniejsze operacje zapisu  do  tego  strumienia
       wystąpią na końcu pliku, tak jakby były poprzedzone wywołaniem
              fseek(stream,0,SEEK_END);

       Funkcja fdopen wiąże strumień z istniejącym deskryptorem pliku, fildes.
       Łańcuch mode strumienia (jeden z "r", "r+", "w", "w+", "a", "a+")  musi
       być  zgodny  z trybem otwarcia deskryptora pliku.  Pozycja nowego stru-
       mienia jest taka sama, jak  pozycja  deskryptora  fildes,  a  znaczniki
       błędu  i  końca  pliku  są  wyłączane. Tryby "w" oraz "w+" nie powodują
       usunięcia zawartości pliku. Deskryptor pliku nie jest powielany i zozs-
       tanie  zamknięty  w  chwili zamknięcia strumienia utworzonego za pomocą
       fdopen.   Rezultat  wywołania  funkcji  fdopen  dla   obiektu   pamięci
       dzielonej jest niezdefiniowany.

       Funkcja  freopen  otwiera  plik,  którego nazwa jest zawarta w łańcuchu
       wskazywanym przez path i wiąże z nim strumień wskazywany przez  stream.
       Pierwotny  strumień  jest  zamykany  (jeśli istnieje). Argument mode ma
       takie samo znaczenie jak  w  przypadku  funkcji  fopen.   Głównym  zas-
       tosowaniem  funkcji  freopen jest zamiana pliku związanego ze standard-
       owym strumieniem tekstowym (stderr, stdin lub stdout).

WARTOŚĆ ZWRACANA
       Jeśli funkcja fopen, fdopen czy freopen zakończy się pomyślnie,  zwraca
       wskaźnik  do struktury FILE.  W przeciwnym wypadku zwraca NULL a zmien-
       nej globalnej errno nadawana jest wartość określającą rodzaj błędu.

BŁĘDY
       EINVAL Argument  mode  podany  dla  fopen,  fdopen,  lub  freopen  jest
              nieprawidłowy.

       Funkcje fopen, fdopen i freopen mogą także zakończyć się niepowodzeniem
       i ustawić wartość errno na dowolny błąd  wymieniony  w  opisie  funkcji
       malloc(3).

       Funkcja fopen może także zakończyć się niepowodzeniem i ustawić wartość
       errno na dowolny błąd wymieniony w opisie funkcji open(2).

       Funkcja fdopen  może  także  zakończyć  się  niepowodzeniem  i  ustawić
       wartość errno na dowolny błąd wymieniony w opisie funkcji open(2).

       Funkcja  freopen  może  także  zakończyć  się  niepowodzeniem i ustawić
       wartość errno na dowolny błąd  wymieniony  w  opisie  funkcji  open(2),
       fclose(3) i fflush(3).

ZGODNE Z
       Funkcje  fopen  oraz freopen są zgodne z ANSI X3.159-1989 (``ANSI C'').
       Funkcja fdopen jest zgodna z IEEE Std1003.1-1988 (``POSIX.1'').

ZOBACZ TAKŻE
       open(2), fclose(3), fileno(3)

BSD                               2002-01-03                          FOPEN(3)

Time taken: 0.00021 seconds


Created with the man page lookup class by Andrew Collington, php@amnuts.com