Provided by: manpages-es_1.55-10_all bug

NOMBRE

       fopen, fdopen, freopen - funciones de apertura de flujos

SINOPSIS

       #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);

DESCRIPCI'ON

       La  funcion fopen abre el fichero cuyo nombre es la cadena apuntada por
       camino y asocia un flujo de datos a el.

       El argumento modo apunta a una  cadena  que  empieza  con  una  de  las
       siguientes secuencias (a las que pueden seguir caracteres adicionales):

       r      Abre  un fichero de texto para lectura. El flujo se posiciona al
              principio del fichero.

       r+     Abre  para  lectura  y  escritura.  El  flujo  se  posiciona  al
              principio del fichero.

       w      Trunca  el  fichero  a  longitud cero o crea un fichero de texto
              para escritura.  El flujo se posiciona al principio del fichero.

       w+     Abre para lectura y escritura. El fichero se crea si no  existe,
              en  otro caso se trunca.  El flujo se posiciona al principio del
              fichero.

       a      Abre para anadir (escribir al final del fichero). El fichero  se
              crea si no existe. El flujo se posiciona al final del fichero.

       a+     Abre  para  leer  y  anadir  (escribir al final del fichero). El
              fichero se crea si no existe. El flujo se posiciona al final del
              fichero.

       La  cadena  modo  tambien  puede  incluir  la  letra  ``b'' como ultimo
       caracter o entre los de cualquiera de las  cadenas  de  dos  caracteres
       descritas  anteriormente. Todo esto es estrictamente por compatibilidad
       con ANSI X3.159-1989 (``ANSI C'') y no tiene efecto. La ``b'' se ignora
       en  todos  los  sistemas  conformes  con POSIX, incluido Linux.  (Otros
       sistemas pueden tratar los ficheros de texto y los ficheros binarios de
       forma  diferente, y anadir la ``b'' puede ser una buena idea si realiza
       E/S  de  un  fichero  binario  y  espera  que  su  programa  pueda  ser
       transportado a entornos no Unix).

       Cualquier       fichero       creado       tendra      de      permisos
       S_IRUSR|S_IWUSR|S_IRGRP|S_IWGRP|S_IROTH|S_IWOTH (0666), modificados por
       el valor de la mascara umask del proceso (vea umask(2)).

       Las  lecturas y las escrituras pueden mezclarse en flujos abiertos para
       lectura/escritura en cualquier orden. Observe que C ANSI  requiere  que
       intervenga una funcion de posicionamiento entre la salida y la entrada,
       a menos que una operacion de entrada encuentre el  fin-de-fichero.  (Si
       esta condicion no se cumple, entonces se permite a una lectura devolver
       el resultado de escrituras distintas a la mas reciente.)  Por lo  tanto
       es  buena  practica  (y desde luego necesario algunas veces bajo Linux)
       hacer una operacion fseek o fgetpos entre operaciones  de  escritura  y
       lectura  en  tal  flujo.  Esta operacion puede ser aparentemente inutil
       (como en fseek(..., 0L, SEEK_CUR)), llamada por su  efecto  lateral  de
       sincronizacion.

       Abrir  un  fichero para anadir (a como primer caracter de mode) implica
       que todas las operaciones de escritura posteriores sobre  el  flujo  se
       realicen  al  final  del  fichero,  como  si  fueran precedidas por una
       llamada
              fseek(stream,0,SEEK_END);

              La funcion fdopen asocia un flujo con el descriptor  de  fichero
              existente,  descf.   El  modo del flujo (uno de los valores "r",
              "r+", "w", "w+", "a", "a+")  debe  ser  compatible  con  el  del
              descriptor  de  fichero. Al indicador de posicion de fichero del
              nuevo flujo se le asigna el  valor  del  indicador  de  posicion
              perteneciente  a  descf  y los indicadores de error y de fin-de-
              fichero se  limpian.  Los  modos  "w"  y  "w+"  no  provocan  el
              trucamiento  del  fichero.   El  descriptor  de  fichero  no  es
              duplicado y se cerrara cuando el  flujo  creado  por  fdopen  se
              cierre.   El  resultado de aplicar fdopen a un objeto compartido
              de memoria es indefinido.

              La funcion freopen abre el fichero  cuyo  nombre  es  la  cadena
              apuntada por camino y asocia el flujo apuntado por flujo con el.
              El flujo original (si existe) se cierra. El  argumento  modo  se
              emplea  igual  que  en  la funcion fopen. El uso principal de la
              funcion freopen es cambiar el fichero asociado con un  flujo  de
              texto estandar (stderr, stdin, o stdout).

VALOR DEVUELTO

       Cuando  acaban  bien,  fopen,  fdopen  y freopen devuelven un puntero a
       FILE. Cuando no, devuelven NULL y la variable global errno contiene  un
       valor que indica el error.

ERRORES

       EINVAL El modo pasado a fopen, fdopen, o a freopen no era valido.

       Las  funciones fopen, fdopen y freopen tambien pueden fallar y poner un
       valor en errno para cualquiera de los  errores  especificados  para  la
       rutina malloc(3).

       La  funcion  fopen  tambien puede fallar y poner un valor en errno para
       cualquiera de los errores especificados para la rutina open(2).

       La funcion fdopen tambien puede fallar y poner un valor en  errno  para
       cualquiera de los errores especificados para la rutina fcntl(2).

       La  funcion freopen tambien puede fallar y poner un valor en errno para
       cualquiera de los  errores  especificados  para  las  rutinas  open(2),
       fclose(3) y fflush(3).

CONFORME A

       Las  funciones  fopen y freopen son conformes con ANSI X3.159-1989 (``C
       ANSI'').   La  funcion  fdopen  es  conforme  con  IEEE  Std1003.1-1988
       (``POSIX.1'').

V'EASE TAMBI'EN

       open(2), fclose(3), fileno(3)