Linux'te execl ile dosya çalıştırma


execl fonksiyonunu çağırdığımız anda parametre olarak verdiğimiz çalıştırılabilir dosya execute edilir ve program bu yeni process'e dönüşür. 


Aşağıda programda process fork edilip child process'i /bin/ls process'ine dönüştürülmektedir.


Çıktılardan istenilen sonuçların elde edildiği görülmektedir.



Linux'te child process oluşturma


Linux'te child process oluşturmak için ilk aşama fork fonksiyonunun çağrılmasıdır. 


 fork çağrıldığı anda processin bir kopyasını oluşturur. Genelde fork exec'le beraber kullanılarak ikinci bir process oluşturmak için kullanılır. Linux sistemlerde process oluşturmanın yolu fork ve ardından exec fonksiyonunu çağırmaktır. fork fonksiyonunun geri dönüş değeri 0'a eşitse child process anlamına gelmektedir. child process'in  bir process id'si bulunmaktadır ve bu process id'si fork fonksiyonunun geri dönüş değeri olan değer değildir.  Bu ikisi karıştırılmamalıdır.



Yukarıdaki basit kodun çıktısı aşağıdaki gibidir. Görüleceği üzere child process'in parent id'si fork işlemi yapılan processin id'si fork işlemi yapılan process'in id'si de bash programının process id'sine eşit olduğu ps -aux ile net bir şekilde incelenebilir.