clone

CLONE(2)                     Manual del Programador                     CLONE(2)



NOMBRE
       clone - crea un descendiente del proceso

SINOPSIS
       #include <linux/sched.h>
       #include <linux/unistd.h>

       pid_t clone(void *sp, unsigned long flags)

DESCRIPCIÓN
       clone es un interfase alternativo a fork, con más opciones.  fork es
       equivalente a clone(0, SIGCLD|COPYVM).

       Si sp no es cero, el proceso descendiente usa sp como su puntero pila
       inicial (initial stack pointer).


       El byte bajo de flags contiene la señal enviada al ascendiente cuando el
       descendiente muere.  flags también puede estar or-operado (bitwise or)
       con COPYVM ó/y COPYFD.

       Si COPYVM está asignado, las páginas del descendiente son imágenes
       copias-en-escritura de las páginas del ascendiente.  Si COPYVM no está
       asignado, el proceso descendiente comparte las mismas páginas con su
       ascendiente, y ambos pueden escribir en el mismo dato.

       Si COPYFD está asignado, los descriptores de fichero del descendiente son
       copia de los relativos a su ancestor.  Si COPYFD no está asignado, los
       descriptores de ficheros del descendiente y ascendiente se comparten.

VALOR REGRESADO
       En caso de éxito, el PID  del descendiente regresa en el hilo de
       ejecución del ascendiente, y un 0 vuelve en el hilo de ejecución del
       descendiente. En caso de fallo, un -1 será vuelto en el contexto del
       ascendiente, no se creará ningún proceso descendiente, y la variable
       errno será asignada apropiadamente.

ERRORES
       ENOSYS clone siempre regresará este error a menos que su kernel halla
              sido compilado con CLONE_ACTUALLY_WORKS_OK definido.

       EAGAIN fork no puede distribuir suficiente memoria para copiar las tablas
              de páginas del ascendiente y asignar una estructura de tarea (task
              structure) para el descendiente.

BUGS
       Normalmente CLONE_ACTUALLY_WORKS_OK no está definido.
       No hay una entrada para clone en /lib/libc.so.4.5.26.
       Comentarios en el kernel (hasta 1.1.46) indican que este no sabe tratar
       el caso en el que COPYVM no está definido.

VÉASE
       fork(2)



Linux 1.2.9                     20 Diciembre 1995                       CLONE(2)