| Telif Hakları | Cem Yılmaz | Erotik Hikayeler | MP3 İndir fork ve exec Fonksiyonlarının Birarada Kullanılması | Açık bilgi paylsım alanı

fork ve exec Fonksiyonlarının Birarada Kullanılması

Bilindiği gibi normal olarak exec fonksiyonları process'i başka bir program olarak devam
ettirmektedir. Halbuki pek çok uygulamada başka bir programı çalıştıran programın da devam
etmesi istenir. Bunun için önce bir kere fork işlemi yapılır, alt process'te exec fonksiyonu
uygulanır. Bu işlem tipik olarak aşağıdaki gibi yapılabilir:
pid_t pid;

if ((pid = fork()) == -1) {
perror("fork");
exit(1);
}
if (pid == 0) {
if (execl(.....) < 0) {
perror("exec");
exit(1);
}
}
wait(NULL);
// ...
Buradaki işlem Win32'de CreateProcess uygulayıp WaitForSingleObject fonksiyonuyla
beklemeye karşılık gelir.gcc dereyicisiyle komut satırı argümanı olarak verilen bir dosyayı
derleyiniz, sonra çalışabilen dosyayı ls -l ile görüntüleyiniz.
#include <stdio.h>
#include <sys/types.h>
#include <stdlib.h>int main(int argc, char *argv[])
{
pid_t pid;
if (argc != 2) {
fprintf(stderr, "Wrong number of argument!..\n");
exit(1);
}
if ((pid = fork()) == -1) {
perror("Fork");
exit(EXIT_FAILURE);
}
if (pid == 0) {
printf(argv[1]);
printf("\n");
if (execlp("gcc", "gcc", "-g", argv[1], (char *) 0) < 0) {
perror("child1 exec");
exit(EXIT_FAILURE);
}
}
wait(NULL);
if ((pid = fork()) == -1) {
perror("Fork");
exit(EXIT_FAILURE);
}
if (pid == 0) {
if (execlp("ls", "ls", "-l", (char *) NULL) < 0) {
perror("child2 exec");
exit(EXIT_FAILURE);
}
}
wait(NULL);
return 0;
}
Share this article :

Yorum Gönder

 
Gora İzle | İletişim | Sitemap
Destek : Cem Yılmaz Filmleri | Telif VB... Telif Hakkı © 2013. cem yılmaz filmleri - Tüm Hakkları Saklıdır.. Sitemizde yer alan tüm videolar, kaynak kodları ile video paylaşım sitelerinden alınmaktadır. Telif hakları sorumluluğu bu sitelere aittir videoların hiç biri sunucularımızda yüklü değildir. Hak sahiplerinin iletişim adresimizden talep etmesi halinde UYAR-KALDIR yöntemi işletilerek, istenen içerik iki iş günü içerisinde siteden kaldırılır.