#include #include #include #include /* int i = 0; */ int thread_main(void *arg) { printf("child: Hello world!\n"); while(1) /* i++ */; return 0; } unsigned long stack[8192]; int main() { int pid; printf("About to clone: thread_main=%p\n", thread_main); pid = clone(thread_main, stack+4096, CLONE_VM, NULL); if(pid == -1) { perror("clone"); return 1; } printf("parent: clone successful; child pid is %d\n", pid); printf("parent: sleeping a bit\n"); sleep(2); /* printf("parent: value is %d\n", i); */ printf("parent: killing process\n"); kill(pid, SIGTERM); return 0; }