الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

كيف أستخدم الـ fork() في الـ C++

بدأه ALLAHs Lover في 26 فبراير 2012 · 1 رد · 1,187 مشاهدة · في الأسئلة المجابة
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

بسم الله الرحمن الرحيم..

السلام عليكم و رحمة الله و بركاته..

كيف يمكنني استخدام الـ ()fork باستخدام السي بلس بلس؟؟

ما هي اﻷشياء اﻷساسية لانشائها؟؟؟

شكرا جزيلا..

السلاااام عليكم..

#2

السلام عليكم

مرحبا أخي :)

بداية, سؤالك غير مُكتمل !

... هل تريد إنشاء Process في Linux أو Windows أو Mac أو ... !!؟

إضافة إلى ذلك, لا أظن أنه توجد frok خاصة بالسي++ لأن الدالة frok أصلا ورثتها السي++ عن السي.

عموما, تقوم الدالة fork بإنشاء Process ابن من الــ Process الأب للبرنامج بحيث يكون الــ Process الإبن مُطابق تماما لأبيه من ناحية الكود . يعمل الأب و الإبن في نفس الوقت إلا أن الأخير يبدأ بالتنفيذ انطلاقا من الأمر الذي يلي frok مباشرة.

frok لا تأخذ أي معاملات و لكنها تعيد متغير من نوع pid_t, .. لتقريب الفكرة .. يمكنك اعتبار أن الدالة frok تُعيد متغير int :)

القيمة المُعادة من طرف الدالة تختلف باختلاف وضع أو طبيعة الــ Process. توجد 3 حالات :

  • إذا كانت القيمة المُعادة تساوي -1 : حدث خطأ أثناء إنشاء الــ Process الإبن.
  • إذا كانت القيمة المُعادة تساوي 0 : التحكم الآن بيد الـ process الابن.
  • إذا كانت القيمة المُعادة أكبر من 0 : هذه القيمة تعبر عن الـ PID الخاص بالابن.

#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

بالتوفيق.

1

مواضيع مشابهة