clone()Bir olan sistem çağrısı ait Linux çekirdeği Oluşturulan süreç oğul pay aynı yürütme içeriği o babasının (aynı adres alanı). Linux altında iş parçacıkları uygulayan bazı kütüphaneler tarafından kullanılır . Uygulamada, clone()hiçbir zaman doğrudan değil, bir iş parçacığı yönetimi kitaplığı ( işlevi sağlayan pthreads gibi) aracılığıyla çağrılır phtread_create().
Bu işlevin prototipi aşağıdaki gibidir:
#include <sched.h> int clone (int (*fn) (void *), void *child_stack, int flags, void *arg);clone()parametrenin gösterdiği işlevi çalıştırarak yeni bir iş parçacığı oluşturur fn( fork()yürütmenin bir sonraki ifadede devam ettiği yerin tersi ). Parametre child_stack, yeni yürütme iş parçacığı için yığın olarak kullanılan bellek alanına bir göstericidir (ilk önce bir çağrı ile ayrılması malloc() gerekir; son bellek yuvasını göstermesi gerekir). Parametre flags, alt öğenin üst öğenin yürütme bağlamından neyi devralması gerektiğini belirtir. Parametre arg, argümanları işleve iletmek için genel bir göstericidir fn. Bu çağrı, başarı durumunda çocuğun iş parçacığı kimliğini veya başarısız olması durumunda -1'i döndürür (ve errnobuna göre değerlenir).
Bu sistem çağrısının Linux çekirdeğine özgü olduğunu ve diğer çekirdekler için derlenmesi amaçlanan kodda kullanılmaması gerektiğini unutmayın.