fcntl

FCNTL(2)                    Manual del Programador                    FCNTL(2)



NOMBRE
       fcntl - manipula el descriptor de fichero

SINOPSIS
       #include <unistd.h>
       #include <fcntl.h>

       int fcntl(int fd, int cmd);
       int fcntl(int fd, int cmd, long arg);

DESCRIPCIÃN
       fcntl realiza una de las diversas operaciones miscelaneas en fd.  La
       operación en cuestión está determinada mediante cmd:

       F_DUPFD  Hace que arg sea una copia de fd, es necesario cerrar fd en
                primer lugar.

                El mismo resultado se puede obtener fácilmente usando dup2.

                Los descriptores antiguo y nuevo pueden usarse
                indistintamente. Ambos comparten candados (locks), punteros de
                posición de ficheros (file position pointers) y banderas
                (flags); por ejemplo, si la posición del fichero se modifica
                usando lseek en uno de los descriptores, la posición del otro
                resulta modificada simultaneamente.

                Sin embargo, los dos descriptores no comparten la bandera
                close-on-exec "cerrar-en-ejecución".

                En caso de éxito, se regresa un nuevo descriptor.

       F_GETFD  Lee la bandera close-on-exec. Si el bit de bajo-orden es 0, el
                fichero permanecerá abierto durante exec, en caso contrario
                se cerrará el fichero.

       F_SETFD  Asigna el valor de la bandera close-on-exec al valor
                especificado por arg (solamente se usa el bit menos
                significativo).


       F_GETFL  Lee las banderas del descriptor (todas las banderas, según
                asignadas por open(2) serán regresadas).

       F_SETFL  Asignar las banderas del descriptor al valor asignado por arg.
                Sólo O_APPEND y  O_NONBLOCK pueden asignarse.

                Las banderas se comparten entre copias (hechas con dup etc.)
                del mismo descriptor de fichero.

                Las banderas y su semántica están descritas en open(2).

       F_GETLK, F_SETLK, and F_SETLKW
                Dirige candados de ficheros discrecionarios (discretionary
                file locks).

       F_GETOWN Obtiene el ID del proceso (o grupo de procesos) del dueño de
                un zócalo (socket).

                Grupos de procesos regresan como valores negativos.

       F_SETOWN Asigna el proceso o grupo de procesos propietarios de un
                interruptor.

                Para estas directivas, "propiedad" significa recivir una
                señal SIGIO ó SIGURG

                Grupos de procesos regresan como valores negativos.

VALOR REGRESADO
       El valor regresado depende de la operación:

       F_DUPFD  El nuevo descriptor.

       F_GETFD  Valor de la bandera.

       F_GETFL  Valor de las banderas.

       F_GETOWN Valor del propietario del descriptor.

       En caso de error el valor regresado es -1, y errno es asignado
       apropiadamente.

ERRORES
       EBADF    fs no es un descriptor de fichero abierto.

       EINVAL   Para F_DUPFD, arg es negativo o mayor que el valor máximo
                permitido.

       EINVAL   Para F_DUPFD, el proceso ya tiene el número máximo de
                descriptores de ficheros abiertos.

NOTAS
       Los errores regresados por dup2 son distintos de aquellos dados por
       F_DUPFD.

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

VÃASE
       open(2), F_DUPFD(2), F_GETFD(2), F_GETFL(2), F_GETLK(2), socket(2).



Linux                            1 Julio 1996                         FCNTL(2)