clone (Linux system call)

From Seo Wiki - Search Engine Optimization and Programming Languages

Jump to: navigation, search

clone() is a system call on the Linux kernel related to multithreading. In practice, one should try to avoid calling clone() directly, but instead use a threading library (such as pthreads) which use clone() when starting a thread (such as during a call to pthread_create()).

The syntax for calling clone under a Linux program is:

#include <sched.h>
int clone (int (*fn) (void *), void *child_stack, int flags, void *arg);

clone creates a new thread that starts with the function pointed to by the fn argument (as opposed to fork() which continues with the next command after fork().) The child_stack argument is a pointer to a memory space to be used as the stack for the new thread (which must be malloc'ed before that; on most architectures stack grows down, so the pointer should point at the end of the space), flags specify what gets inherited from the parent process, and arg is the argument passed to the function. It returns the process ID of the child process or -1 on failure.

Template:Linuxit:Clone (chiamata di sistema Linux)

Personal tools

Served in 0.281 secs.