بسم الله الرحمن الرحيم..
السلام عليكم و رحمة الله و بركاته..
كيف يمكنني استخدام الـ ()fork باستخدام السي بلس بلس؟؟
ما هي اﻷشياء اﻷساسية لانشائها؟؟؟
شكرا جزيلا..
السلاااام عليكم..
بسم الله الرحمن الرحيم..
السلام عليكم و رحمة الله و بركاته..
كيف يمكنني استخدام الـ ()fork باستخدام السي بلس بلس؟؟
ما هي اﻷشياء اﻷساسية لانشائها؟؟؟
شكرا جزيلا..
السلاااام عليكم..
السلام عليكم
مرحبا أخي :)
بداية, سؤالك غير مُكتمل !
... هل تريد إنشاء Process في Linux أو Windows أو Mac أو ... !!؟
إضافة إلى ذلك, لا أظن أنه توجد frok خاصة بالسي++ لأن الدالة frok أصلا ورثتها السي++ عن السي.
عموما, تقوم الدالة fork بإنشاء Process ابن من الــ Process الأب للبرنامج بحيث يكون الــ Process الإبن مُطابق تماما لأبيه من ناحية الكود . يعمل الأب و الإبن في نفس الوقت إلا أن الأخير يبدأ بالتنفيذ انطلاقا من الأمر الذي يلي frok مباشرة.
frok لا تأخذ أي معاملات و لكنها تعيد متغير من نوع pid_t, .. لتقريب الفكرة .. يمكنك اعتبار أن الدالة frok تُعيد متغير int :)
القيمة المُعادة من طرف الدالة تختلف باختلاف وضع أو طبيعة الــ Process. توجد 3 حالات :
#include<stdio.h>
#include<unistd.h>
#include<sys/types.h>
int main() {
pid_t pid = frok();
/* يبدأ المعالج الإبن بتنفيذ الأوامر التالية */
if (pid == -1) {
/* حدث خطأ, لم يتم إنشاء المعالج الإبن */
} else if (pid == 0) {
/* التحكم الآن بيد الـ process الابن. */
} else {
/* التحكم الآن بيد الـ process الأب */
}
return 0;
}في الويندوز, يمكنك إنشاء Process ابن من خلال L'API CreateProcess
للمزيد :
إنشاء Process باستعمال الدالة Fork في لغة C
توليد العمليات بإستخدام الدالة fork
بالتوفيق.