على لينكس، يمكن أن تجعل عملية GUI عملية آخر؟
سؤال
وأنا أكتب لاعب الفيديو على لينكس وأود أن فصلها إلى 2 العملية:
وA. عملية فك B. GUI
في هذه الطريقة، وأنا يمكن أن تستخدم لغات البرمجة المختلفة وعندما يحدث مشكلة، فإنه من السهل أن تعرف أين هي المشكلة.
والمشكلة هي، يمكن أن العملية تجعل الصور فك الشفرة على سطح B مباشرة؟ أنا لا أريد أن استخدام بعض IPC لإرسال B هذه البيانات فك لأن ذلك قد يكون غير فعالة للغاية.
نصائح أخرى
وIPC (خصوصا أنبوب يونكس) هو أكثر كفاءة بكثير ثم كنت تعتقد وربما هو الآلية الصحيحة لاستخدامها.
ولكن، وبما انك سألت عن كيفية القيام بذلك دون IPC (وأنا تحليل هذا يعني من دون مفاتيح السياق ونسخة)، يمكنك ببساطة إنشاء شريحة الذاكرة المشتركة بين العمليتين:
fd = shm_open("/my_shmem", O_RDWR| O_CREAT, S_IWUSR);
if(fd == -1) abort();
ftruncate(fd, SHMEM_SIZE);
p = mmap(NULL, SHMEM_SIZE, PROT_WRITE | PROT_READ, MAP_SHARED, fd, 0);
if(p == MAP_FAILED) abort()
والآن ص ديه عنوان لشريحة الذاكرة المشتركة المشتركة من قبل اثنين (أو أكثر) العمليات.
تحذير! قد يكون قيمة رقمية من ص (العنوان الظاهرية من الذاكرة) مختلفة بين العمليات، لذلك إذا كنت تريد أن تضع قائمة مرتبطة في الذاكرة المشتركة على سبيل المثال، كنت قد لاستخدام التعويضات.
وابتهاج، gby
ونظرة على كيفية تنفيذ إمبلاير وإمبلاير مستخدمي SMPlayer. ام بلاير يترجم ويظهر الفيديو، وإمبلاير مستخدمي SMPlayer هو (اختياري) واجهة المستخدم الرسومية.