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

سؤال عن Semget والتطبيق على Linux

بدأه gheath في 9 أكتوبر 2008 · 2 رد · 800 مشاهدة · في نظام تشغيل Unix & Linux
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم لدي استفسار عن دالة semget

الموضوع هو انني احاول ان استخرج معرف لكن دائما يكون الخرج صفر على غير ماقرأت مثال

key_t  k=ftok(argv[0],1);
printf("key %d \n",k);

int semid=semget(k,1,IPC_CREAT);
printf("semid %d",semid);

ولدي سؤال اخر ماهي طريقة تطبيق دالتين بنفس الوقت ويستخدمون مثلا متحول معين

يعني بمفهوم اخر انا اعرف ان الكود البرمجي يطبق من الاعلى الى الاسفل "طبعا الكلام بشكل عام "

لكن طلب مني في وظيفة ان اطبق اكثر من دالة مع بعض ثم القيام بعمل مقطع حرج لهم وايقاف احداهما حتى تكمل الاخرى وهكذا

احتاج الى فكرة التطبيق مع بعض

مع بالغ شكري

على فكرة وجدت الكثير من المراجع عن الموضوع لكن لم اعرف ماهي مشكلة عدم توليد الرقم مثال

http://www.manpagez.com/man/2/semget/

هل يمكن انني اطبق مباشرة على لينكس حقيقي وليس على vm مثلا !!!!!

#2
key_t  k=ftok(argv[0],1);

استخراج معرف باستخدام الدالة ftok يكون بتمرير مسار ملف (موجود) + int

لكل ثنائية (مسار ملف+الـ int) هناك معرف واحد و وحيد ينشأ عن ذلك

يمكن استعمال بدل argv[0] مسار أي ملف آخر (لكن لا يستحسن ذلك)

إن أردت الحصول على معرف آخر غير قيمة الـ int (أقصد تغيير الرقم 1 في المثال إلى رقم آخر )

بخصوص السؤال الثاني لم أفهم ما تقصده -فضلا أعد الشرح-

على كل حال اقرأ هذا الموضوع فلربما تجد فيه ضالتك

Mutex (الإقصاء المتبادل) و التزامن بين الـ Process باستعمال لغة C تحت بيئة Linux, باستخدام الـ Semaphore-الجزء1:الجزء النظري-

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