السلام عليكم
أواجه مشاكل في فهم الفورك وقرأت العديد من الشروحات على الانترنت الا أنني لم أستوعبها جيدا.
مثلا هذا المثال البسيط بالسي:
()int main
}
printf("Hi ! \n");
;()fork
printf("Hello ! \n");
{
سيكتب على الشاشة Hi ثم Hello مرتين.
لماذا؟
المخرج الطبيعى للبرنامج هو Hi hello ولكن عن وضع الداله fork() قام بتكرار ماتمت كتابته بعد الداله
تقوم الدالة فورك با نشاء نسخه من الكود الخاص بالبرنامج ولكن اذا تم وضع هذة الداله فى منتصف الكود سوف تقوم بانشاء نسخه من البرنامج ولكن تاخذ البينات التى بعدها فقط وذلك يعنى ان اا قمت بكتابه فورك قبل Hi سوف تطبع Hi Hello مرتين
والبرنامج الاخر الذى يتم نسخة يسمى البرنامج الابن او child process وهذة الدالة تكون فى نظام لنكس بكل تاكيد
التعليقات