.\" -*- coding: UTF-8 -*- .\" Copyright 1983-1991, Regents of the University of California. .\" Copyright 2007, Michael Kerrisk .\" Copyright, the authors of the Linux man-pages project .\" .\" SPDX-License-Identifier: BSD-4-Clause-UC .\" .\"******************************************************************* .\" .\" This file was generated with po4a. Translate the source file. .\" .\"******************************************************************* .TH setpgid 2 "8 فبراير 2026" "صفحات دليل لينكس 6.18" .SH الاسم setpgid, getpgid, setpgrp, getpgrp \- ضبط/الحصول على مجموعة العملية .SH المكتبة مكتبة سي المعيارية (\fIlibc\fP،\ \fI\-lc\fP) .SH موجز .nf \fB#include \fP .P \fBint setpgid(pid_t \fP\fIpid\fP\fB, pid_t \fP\fIpgid\fP\fB);\fP \fBpid_t getpgid(pid_t \fP\fIpid\fP\fB);\fP .P \fBpid_t getpgrp(void);\fP /* POSIX.1 version */ \fB[[deprecated]] pid_t getpgrp(pid_t \fP\fIpid\fP\fB);\fP\f[R] /* BSD version */\fR .P \fBint setpgrp(void);\fP /* System V version */ \fB[[deprecated]] int setpgrp(pid_t \fP\fIpid\fP\fB, pid_t \fP\fIpgid\fP\fB);\fP\f[R] /* BSD version */\fR .fi .P .RS -4 متطلبات ماكروات اختبار الميزات لـ glibc (انظر \fBfeature_test_macros\fP(7)): .RE .P \fBgetpgid\fP(): .nf .\" || _XOPEN_SOURCE && _XOPEN_SOURCE_EXTENDED _XOPEN_SOURCE >= 500 || /* منذ glibc 2.12: */ _POSIX_C_SOURCE >= 200809L .fi .P \fBsetpgrp\fP() (POSIX.1): .nf .\" || _XOPEN_SOURCE && _XOPEN_SOURCE_EXTENDED _XOPEN_SOURCE >= 500 || /* Since glibc 2.19: */ _DEFAULT_SOURCE || /* glibc <= 2.19: */ _SVID_SOURCE .fi .P \fBsetpgrp\fP() (BSD), \fBgetpgrp\fP() (BSD): .nf [These are available only before glibc 2.19] _BSD_SOURCE && ! (_POSIX_SOURCE || _POSIX_C_SOURCE || _XOPEN_SOURCE || _GNU_SOURCE || _SVID_SOURCE) .fi .SH الوصف جميع هذه الواجهات متاحة على لينكس، وتُستخدم للحصول على وضبط معرف مجموعة العملية (PGID) لعملية. الطرق المفضلة والمحددة بواسطة POSIX.1 للقيام بذلك هي: \fBgetpgrp\fP(void)، لاسترجاع PGID للعملية المستدعية؛ و \fBsetpgid\fP()، لضبط PGID لعملية. .P \fBsetpgid\fP() يضبط PGID للعملية المحددة بواسطة \fIpid\fP إلى \fIpgid\fP. إذا كان \fIpid\fP صفرًا، يُستخدم معرف العملية للعملية المستدعية. إذا كان \fIpgid\fP صفرًا، يُجعل PGID للعملية المحددة بواسطة \fIpid\fP مساويًا لمعرف العملية الخاص بها. إذا استُخدم \fBsetpgid\fP() لنقل عملية من مجموعة عمليات إلى أخرى (كما تفعل بعض الصدف عند إنشاء خطوط الأنابيب)، يجب أن تكون كلتا مجموعتي العمليات جزءًا من نفس الجلسة (انظر \fBsetsid\fP(2) و \fBcredentials\fP(7)). في هذه الحالة، يحدد \fIpgid\fP مجموعة عمليات موجودة للانضمام إليها ويجب أن يتطابق معرف جلسة تلك المجموعة مع معرف جلسة العملية المنضمة. .P إصدار POSIX.1 من \fBgetpgrp\fP()، الذي لا يأخذ وسائط، يُرجع PGID للعملية المستدعية. .P \fBgetpgid\fP() يُرجع PGID للعملية المحددة بواسطة \fIpid\fP. إذا كان \fIpid\fP صفرًا، يُستخدم معرف العملية للعملية المستدعية. (استرجاع PGID لعملية غير المستدعي نادرًا ما يكون ضروريًا، و \fBgetpgrp\fP() من POSIX.1 مفضل لتلك المهمة.) .P \fBsetpgrp\fP() بنمط System V، الذي لا يأخذ وسائط، يعادل \fIsetpgid(0,\ 0)\fP. .P استدعاء \fBsetpgrp\fP() الخاص بـ BSD، الذي يأخذ وسائط \fIpid\fP و \fIpgid\fP، هو دالة غلاف تستدعي .P .in +4n .EX setpgid(pid, pgid) .EE .in .P .\" The true BSD setpgrp() system call differs in allowing the PGID .\" to be set to arbitrary values, rather than being restricted to .\" PGIDs in the same session. منذ glibc 2.19، لم تعد دالة \fBsetpgrp\fP() الخاصة بـ BSD معروضة بواسطة \fI\fP؛ يجب استبدال الاستدعاءات باستدعاء \fBsetpgid\fP() الموضح أعلاه. .P استدعاء \fBgetpgrp\fP() الخاص بـ BSD، الذي يأخذ وسيطًا واحدًا \fIpid\fP، هو دالة غلاف تستدعي .P .in +4n .EX getpgid(pid) .EE .in .P منذ glibc 2.19، لم تعد دالة \fBgetpgrp\fP() الخاصة بـ BSD معروضة بواسطة \fI\fP؛ يجب استبدال الاستدعاءات باستدعاءات إلى \fBgetpgrp\fP() من POSIX.1 الذي لا يأخذ وسائط (إذا كان القصد هو الحصول على PGID للمستدعي)، أو باستدعاء \fBgetpgid\fP() الموضح أعلاه. .SH "قيمة الإرجاع" عند النجاح، تُرجع \fBsetpgid\fP() و \fBsetpgrp\fP() صفرًا. عند الخطأ، يُرجع \-1، ويُضبط \fIerrno\fP للإشارة إلى الخطأ. .P \fBgetpgrp\fP() من POSIX.1 يُرجع دائمًا PGID للمستدعي. .P \fBgetpgid\fP()، و \fBgetpgrp\fP() الخاص بـ BSD يُرجعان مجموعة عمليات عند النجاح. عند الخطأ، يُرجع \-1، ويُضبط \fIerrno\fP للإشارة إلى الخطأ. .SH الأخطاء .TP \fBEACCES\fP جرت محاولة لتغيير معرف مجموعة العملية لأحد أبناء العملية المستدعية وكان الابن قد نفذ بالفعل \fBexecve\fP(2) (\fBsetpgid\fP()، \fBsetpgrp\fP()). .TP \fBEINVAL\fP \fIpgid\fP أقل من 0 (\fBsetpgid\fP()، \fBsetpgrp\fP()). .TP \fBEPERM\fP جرت محاولة لنقل عملية إلى مجموعة عمليات في جلسة مختلفة، أو لتغيير معرف مجموعة العملية لأحد أبناء العملية المستدعية وكان الابن في جلسة مختلفة، أو لتغيير معرف مجموعة العملية لقائد جلسة (\fBsetpgid\fP()، \fBsetpgrp\fP()). .TP \fBEPERM\fP مجموعة العملية الهدف غير موجودة. (\fBsetpgid\fP()، \fBsetpgrp\fP()). .TP \fBESRCH\fP بالنسبة لـ \fBgetpgid\fP(): \fIpid\fP لا يتطابق مع أي عملية. بالنسبة لـ \fBsetpgid\fP(): \fIpid\fP ليس العملية المستدعية وليس ابنًا للعملية المستدعية. .SH المعايير .TP \fBgetpgid\fP() .TQ \fBsetpgid\fP() .TQ \fBgetpgrp\fP() (بدون وسائط) POSIX.1\-2024. .TP \fBsetpgrp\fP() .TQ \fBgetpgrp\fP() (وسيطة واحدة) لا شيء. .SH التاريخ .TP \fBgetpgid\fP() .TQ \fBsetpgid\fP() .TQ \fBgetpgrp\fP() (بدون وسائط) POSIX.1\-2001. .TP \fBsetpgrp\fP() (بدون وسائط) POSIX.1\-2001. أُهمل في POSIX.1\-2008. أُزيل في POSIX.1\-2024. .TP \fBsetpgrp\fP() (وسيطتان) .TQ \fBgetpgrp\fP() (وسيطة واحدة) 4.2BSD. .SH ملاحظات يرث الطفل المُنشأ عبر \fBfork\fP(2) معرف مجموعة العملية الخاص بوالده. يُحافظ على PGID عبر \fBexecve\fP(2). .P كل مجموعة عملية هي عضو في جلسة وكل عملية هي عضو في الجلسة التي تكون مجموعتها عضوًا فيها. (انظر \fBcredentials\fP(7).) .P يمكن أن تحتوي الجلسة على طرفية تحكم. في أي وقت، يمكن لمجموعة عملية واحدة (وواحدة فقط) من مجموعات العمليات في الجلسة أن تكون مجموعة العمليات الأمامية للطرفية؛ أما مجموعات العمليات المتبقية فهي في الخلفية. إذا تولدت إشارة من الطرفية (مثلًا، كتابة مفتاح المقاطعة لتوليد \fBSIGINT\fP)، تُرسل تلك الإشارة إلى مجموعة العمليات الأمامية. (انظر \fBtermios\fP(3) لوصف المحارف التي تولد الإشارات.) فقط مجموعة العمليات الأمامية يمكنها \fBread\fP(2) من الطرفية؛ إذا حاولت مجموعة عمليات خلفية \fBread\fP(2) من الطرفية، تُرسل إلى المجموعة إشارة \fBSIGTTIN\fP، والتي تعلقها. تُستخدم الدالتان \fBtcgetpgrp\fP(3) و \fBtcsetpgrp\fP(3) للحصول/تعيين مجموعة العمليات الأمامية للطرفية المتحكمة. .P تُستخدم استدعاءات \fBsetpgid\fP() و \fBgetpgrp\fP() بواسطة برامج مثل \fBbash\fP(1) لإنشاء مجموعات عمليات بهدف تنفيذ التحكم في مهام الصدفة. .P .\" exit.3 refers to the following text: إذا تسبب إنهاء عملية في جعل مجموعة عملية يتيمة، وإذا كان أي عضو من مجموعة العمليات اليتيمة الجديدة متوقفًا، فسيُرسل إشارة \fBSIGHUP\fP متبوعة بإشارة \fBSIGCONT\fP إلى كل عملية في مجموعة العمليات اليتيمة الجديدة. مجموعة العمليات اليتيمة هي تلك التي يكون فيها والد كل عضو من مجموعة العملية إما عضوًا في مجموعة العملية نفسها أو عضوًا في مجموعة عملية في جلسة مختلفة (انظر أيضًا \fBcredentials\fP(7)). .SH "انظر أيضًا" \fBgetuid\fP(2), \fBsetsid\fP(2), \fBtcgetpgrp\fP(3), \fBtcsetpgrp\fP(3), \fBtermios\fP(3), \fBcredentials\fP(7) .PP .SH ترجمة تُرجمت هذه الصفحة من الدليل بواسطة زايد السعيدي . .PP هذه الترجمة هي وثيقة مجانية؛ راجع .UR https://www.gnu.org/licenses/gpl-3.0.html رخصة جنو العامة الإصدار 3 .UE أو ما بعده للاطلاع على شروط حقوق النشر. لا توجد أي ضمانات. .PP إذا وجدت أي أخطاء في ترجمة صفحة الدليل هذه، يرجى إرسال بريد إلكتروني إلى قائمة بريد المترجمين: .MT kde-l10n-ar@kde.org .ME .