openpty(3)

الاسم
openpty, login_tty, forkpty - دوال طرفية مساعدة

المكتبة
مكتبة أدوات النظام (libutil، -lutil)

موجز
#include <pty.h>

int openpty(int *amaster, int *aslave, char *name,
              const struct termios *termp,
              const struct winsize *winp);
pid_t forkpty(int *amaster, char *name,
              const struct termios *termp,
              const struct winsize *winp);

#include <utmp.h>

int login_tty(int fd);

الوصف
الدالة openpty() تبحث عن طرف زائف متاح وتُعيد واصفات ملفات للسيد والعبد في amaster و aslave. إذا كان name ليس NULL، يُعاد اسم ملف العبد في name. إذا كان termp ليس NULL، تُضبط معاملات الطرف للعبد إلى القيم في termp. إذا كان winp ليس NULL، يُضبط حجم نافذة العبد إلى القيم في winp.

الدالة login_tty() تُحضّر لتسجيل الدخول على الطرف المشار إليه بواسطة واصف الملف fd (قد يكون جهاز طرف حقيقي، أو عبد طرف زائف كما تُعيده openpty()) بإنشاء جلسة جديدة، وجعل fd الطرف المسيطر للعملية المستدعية، وضبط fd ليكون تيارات الإدخال والإخراج والخطأ القياسية للعملية الحالية، وإغلاق fd.

الدالة forkpty() تدمج openpty() و fork(2) و login_tty() لإنشاء عملية جديدة تعمل في طرف زائف. يُعاد واصف ملف يشير إلى جانب السيد من الطرف الزائف في amaster. إذا كان name ليس NULL، يُستخدم المخزن المؤقت الذي يشير إليه لإعادة اسم ملف العبد. الوسيطان termp و winp، إذا لم يكونا NULL، يُحددان سمات الطرف وحجم نافذة جانب العبد من الطرف الزائف.

قيمة الإرجاع
إذا لم تنجح استدعاء openpty() أو login_tty() أو forkpty()، يُعاد -1 ويُضبط errno للإشارة إلى الخطأ. وإلا، تُعيد openpty() و login_tty() وعملية الطفل لـ forkpty() 0، وتُعيد العملية الأم لـ forkpty() معرف العملية للطفل.

الأخطاء
openpty() تفشل إذا:

ENOENT
    لا توجد أطراف متاحة.

login_tty() تفشل إذا فشلت ioctl(2) في ضبط fd ليكون الطرف المسيطر للعملية المستدعية.

forkpty() تفشل إذا فشلت إما openpty() أو fork(2).

السمات
للاطلاع على شرح للمصطلحات المستخدمة في هذا القسم، انظر attributes(7).
الواجهة | السمة | القيمة
forkpty()، openpty() | سلامة الخيوط | المنطقة (locale) آمنة لتعدد المسالك (MT-Safe)
login_tty() | سلامة الخيوط | غير آمن للمسارات المتعددة (MT-Unsafe) سباق:ttyname

المعايير
BSD.

التاريخ
أُضيفت معدّلات const إلى وسائط مؤشرات البنية لـ openpty() و forkpty() في glibc 2.8.

قبل glibc 2.0.92، تُعيد openpty() واصفات ملفات لزوج طرف زائف BSD؛ منذ glibc 2.0.92، تحاول أولاً فتح زوج طرف زائف UNIX 98، وتتراجع إلى فتح زوج طرف زائف BSD إذا فشل ذلك.

العلل
لا أحد يعرف مقدار المساحة التي يجب حجزها لـ name. لذا، استدعاء openpty() أو forkpty() مع name غير NULL قد لا يكون آمناً.

انظر أيضًا
fork(2), ttyname(3), pty(7)

ترجمة
تُرجمت هذه الصفحة من الدليل بواسطة زايد السعيدي <zayed.alsaidi@gmail.com>

هذه الترجمة هي وثيقة مجانية؛ راجع رخصة جنو العامة الإصدار 3 (https://www.gnu.org/licenses/gpl-3.0.html) أو ما بعده للاطلاع على شروط حقوق النشر. لا توجد أي ضمانات.

إذا وجدت أي أخطاء في ترجمة صفحة الدليل هذه، يرجى إرسال بريد إلكتروني إلى قائمة بريد المترجمين: kde-l10n-ar@kde.org.