.\" -*- coding: UTF-8 -*- '\" t .\" Copyright 2006-2015, Michael Kerrisk .\" Copyright, the authors of the Linux man-pages project .\" .\" SPDX-License-Identifier: GPL-2.0-or-later .\" .\"******************************************************************* .\" .\" This file was generated with po4a. Translate the source file. .\" .\"******************************************************************* .TH termios 3 "8 فبراير 2026" "صفحات دليل لينكس 6.18" .SH الاسم termios, tcgetattr, tcsetattr, tcsendbreak, tcdrain, tcflush, tcflow, cfmakeraw, cfgetospeed, cfgetispeed, cfsetispeed, cfsetospeed, cfsetspeed \- الحصول على سمات الجهاز الطرفي وتعيينها، والتحكم في الخط، والحصول على معدل الباود وتعيينه .SH المكتبة مكتبة سي المعيارية (\fIlibc\fP،\ \fI\-lc\fP) .SH موجز .nf \fB#include \fP \fB#include \fP .P \fBint tcgetattr(int \fP\fIfd\fP\fB, struct termios *\fP\fItermios_p\fP\fB);\fP \fBint tcsetattr(int \fP\fIfd\fP\fB, int \fP\fIoptional_actions\fP\fB,\fP \fB const struct termios *\fP\fItermios_p\fP\fB);\fP .P \fBint tcsendbreak(int \fP\fIfd\fP\fB, int \fP\fIduration\fP\fB);\fP \fBint tcdrain(int \fP\fIfd\fP\fB);\fP \fBint tcflush(int \fP\fIfd\fP\fB, int \fP\fIqueue_selector\fP\fB);\fP \fBint tcflow(int \fP\fIfd\fP\fB, int \fP\fIaction\fP\fB);\fP .P \fBvoid cfmakeraw(struct termios *\fP\fItermios_p\fP\fB);\fP .P \fBspeed_t cfgetispeed(const struct termios *\fP\fItermios_p\fP\fB);\fP \fBspeed_t cfgetospeed(const struct termios *\fP\fItermios_p\fP\fB);\fP .P \fBint cfsetispeed(struct termios *\fP\fItermios_p\fP\fB, speed_t \fP\fIspeed\fP\fB);\fP \fBint cfsetospeed(struct termios *\fP\fItermios_p\fP\fB, speed_t \fP\fIspeed\fP\fB);\fP \fBint cfsetspeed(struct termios *\fP\fItermios_p\fP\fB, speed_t \fP\fIspeed\fP\fB);\fP .fi .P .RS -4 متطلبات ماكروات اختبار الميزات لـ glibc (انظر \fBfeature_test_macros\fP(7)): .RE .P \fBcfsetspeed\fP(), \fBcfmakeraw\fP(): .nf منذ glibc 2.19: _DEFAULT_SOURCE glibc 2.19 وما قبله: _BSD_SOURCE .fi .SH الوصف تصف دوال termios واجهة طرفية عامة وُفّرت للتحكم في منافذ الاتصال غير المتزامن. .SS "هيكل termios" العديد من الدوال الموصوفة هنا تحتوي على معامل \fItermios_p\fP وهو مؤشر إلى هيكل \fItermios\fP. يحتوي هذا الهيكل على الأقل على الأعضاء التالية: .P .in +4n .EX tcflag_t c_iflag; /* أوضاع الإدخال */ tcflag_t c_oflag; /* أوضاع الإخراج */ tcflag_t c_cflag; /* أوضاع التحكم */ tcflag_t c_lflag; /* الأوضاع المحلية */ cc_t c_cc[NCCS]; /* الأحرف الخاصة */ .EE .in .P القيم التي يمكن تعيينها لهذه الحقول موصوفة أدناه. في حالة الحقول الأربعة الأولى لقناع البت، تُكشف تعريفات بعض الأعلام المرتبطة التي يمكن تعيينها فقط إذا عُرّف كلي اختبار ميزة محدد (انظر \fBfeature_test_macros\fP(7))، كما هو مذكور بين قوسين ("[]"). .P في الأوصاف أدناه، "ليس في POSIX" يعني أن القيمة غير محددة في POSIX.1\-2001، و"XSI" يعني أن القيمة محددة في POSIX.1\-2001 كجزء من امتداد XSI. .P ثوابت علم \fIc_iflag\fP: .TP \fBIGNBRK\fP تجاهل حالة BREAK عند الإدخال. .TP \fBBRKINT\fP إذا عُيّن \fBIGNBRK\fP، يُتجاهل BREAK. إذا لم يُعيّن ولكن عُيّن \fBBRKINT\fP، فإن BREAK يتسبب في مسح طوابير الإدخال والإخراج، وإذا كانت الطرفية هي الطرفية المتحكمة لمجموعة عمليات أمامية، فإنه يتسبب في إرسال \fBSIGINT\fP إلى مجموعة العمليات الأمامية هذه. عندما لا يُعيّن أي من \fBIGNBRK\fP أو \fBBRKINT\fP، يُقرأ BREAK كبايت فارغ (\fB\[aq]\[rs]0\[aq]\fP)، باستثناء عندما يُعيّن \fBPARMRK\fP، وفي هذه الحالة يُقرأ كالتسلسل \[rs]377 \[rs]0 \[rs]0. .TP \fBIGNPAR\fP تجاهل أخطاء التأطير وأخطاء التكافؤ. .TP \fBPARMRK\fP إذا وُضعت هذه البتة، تُوسم البايتات المدخلة ذات أخطاء التكافؤ أو التأطير عند تمريرها إلى البرنامج. تكون هذه البتة ذات معنى فقط عندما تُضبط \fBINPCK\fP ولا تُضبط \fBIGNPAR\fP. طريقة وسم البايتات الخاطئة تكون ببايتين سابقتين، \[rs]377 و \[rs]0. وبالتالي، يقرأ البرنامج فعليًا ثلاث بايتات مقابل بايتة خاطئة واحدة وردت من الطرفية. إذا كانت قيمة بايتة صحيحة هي \[rs]377، ولم تُضبط \fBISTRIP\fP (انظر أدناه)، فقد يخلطها البرنامج مع البادئة التي توسم خطأ التكافؤ. لذلك، تُمرر بايتة صحيحة \[rs]377 إلى البرنامج كبايتين، \[rs]377 \[rs]377، في هذه الحالة. .IP إذا لم تُضبط لا \fBIGNPAR\fP ولا \fBPARMRK\fP، يُقرأ حرف ذو خطأ تكافؤ أو خطأ تأطير كـ \[rs]0. .TP \fBINPCK\fP تمكين فحص تكافؤ الإدخال. .TP \fBISTRIP\fP إزالة البتة الثامنة. .TP \fBINLCR\fP ترجمة NL إلى CR عند الإدخال. .TP \fBIGNCR\fP تجاهل إرجاع العربة عند الإدخال. .TP \fBICRNL\fP ترجمة إرجاع العربة إلى سطر جديد عند الإدخال (ما لم تُضبط \fBIGNCR\fP). .TP \fBIUCLC\fP (ليس في POSIX) تعيين الأحرف الكبيرة إلى أحرف صغيرة عند الإدخال. .TP \fBIXON\fP تمكين التحكم في التدفق XON/XOFF عند الإخراج. .TP \fBIXANY\fP (XSI) كتابة أي حرف سيعيد تشغيل الإخراج المتوقف. (المبدئي هو السماح فقط بحرف START لإعادة تشغيل الإخراج.) .TP \fBIXOFF\fP تمكين التحكم في التدفق XON/XOFF عند الإدخال. .TP \fBIMAXBEL\fP (ليس في POSIX) قرع الجرس عندما يكون طابور الإدخال ممتلئًا. لا ينفذ لينكس هذه البتة، ويتصرف كما لو أنها مضبوطة دائمًا. .TP \fBIUTF8\fP (منذ لينكس 2.6.4) (ليس في POSIX) الإدخال هو UTF8؛ هذا يسمح بتنفيذ مسح المحارف بشكل صحيح في الوضع المطبوخ. .P ثوابت العلم \fIc_oflag\fP: .TP \fBOPOST\fP تمكين معالجة المخرجات المُعرَّفة بالتنفيذ. .TP \fBOLCUC\fP (ليس في POSIX) تعيين المحارف الصغيرة إلى كبيرة عند الإخراج. .TP \fBONLCR\fP (XSI) تعيين NL إلى CR\-NL عند الإخراج. .TP \fBOCRNL\fP تعيين CR إلى NL عند الإخراج. .TP \fBONOCR\fP لا تُخرج CR عند العمود 0. .TP \fBONLRET\fP يُفترض أن المحرف NL يؤدي وظيفة إرجاع العربة؛ تُضبط فكرة النواة عن العمود الحالي إلى 0 بعد كل من NL وCR. .TP \fBOFILL\fP أرسل محارف حشو للتأخير، بدلاً من استخدام تأخير زمني. .TP \fBOFDEL\fP محرف الحشو هو ASCII DEL (0177). إذا لم يُضبط، فمحرف الحشو هو ASCII NUL (\[aq]\[rs]0\[aq]). (لم يُنفذ على لينكس.) .TP \fBNLDLY\fP قناع تأخير السطر الجديد. القيم هي \fBNL0\fP و \fBNL1\fP. [يتطلب \fB_BSD_SOURCE\fP أو \fB_SVID_SOURCE\fP أو \fB_XOPEN_SOURCE\fP] .TP \fBCRDLY\fP قناع تأخير إرجاع العربة. القيم هي \fBCR0\fP، \fBCR1\fP، \fBCR2\fP، أو \fBCR3\fP. [يتطلب \fB_BSD_SOURCE\fP أو \fB_SVID_SOURCE\fP أو \fB_XOPEN_SOURCE\fP] .TP \fBTABDLY\fP قناع تأخير الجدولة الأفقية. القيم هي \fBTAB0\fP، \fBTAB1\fP، \fBTAB2\fP، \fBTAB3\fP (أو \fBXTABS\fP، لكن انظر قسم \fBBUGS\fP). قيمة TAB3، أي XTABS، توسع الجداول إلى مسافات (مع توقفات جدولة كل ثمانية أعمدة). [يتطلب \fB_BSD_SOURCE\fP أو \fB_SVID_SOURCE\fP أو \fB_XOPEN_SOURCE\fP] .TP \fBBSDLY\fP قناع تأخير المسح الخلفي. القيم هي \fBBS0\fP أو \fBBS1\fP. (لم يُنفذ أبدًا.) [يتطلب \fB_BSD_SOURCE\fP أو \fB_SVID_SOURCE\fP أو \fB_XOPEN_SOURCE\fP] .TP \fBVTDLY\fP قناع تأخير الجدولة العمودية. القيم هي \fBVT0\fP أو \fBVT1\fP. .TP \fBFFDLY\fP قناع تأخير تغذية النموذج. القيم هي \fBFF0\fP أو \fBFF1\fP. [يتطلب \fB_BSD_SOURCE\fP أو \fB_SVID_SOURCE\fP أو \fB_XOPEN_SOURCE\fP] .P ثوابت العلم \fIc_cflag\fP: .TP \fBCBAUD\fP (ليس في POSIX) قناع سرعة الباود (4+1 بت). [يتطلب \fB_BSD_SOURCE\fP أو \fB_SVID_SOURCE\fP] .TP \fBCBAUDEX\fP (ليس في POSIX) قناع سرعة باود إضافي (1 بت)، مُضمن في \fBCBAUD\fP. [يتطلب \fB_BSD_SOURCE\fP أو \fB_SVID_SOURCE\fP] .IP (ينص POSIX على أن سرعة الباود تُخزَّن في بنية \fItermios\fP دون تحديد مكانها بدقة، ويوفر الدالتين \fBcfgetispeed\fP() و \fBcfsetispeed\fP() للوصول إليها. تستخدم بعض الأنظمة البتات المحددة بواسطة \fBCBAUD\fP في \fIc_cflag\fP، بينما تستخدم أنظمة أخرى حقولاً منفصلة، مثل \fIsg_ispeed\fP و \fIsg_ospeed\fP.) .TP \fBCSIZE\fP قناع حجم المحرف. القيم هي \fBCS5\fP أو \fBCS6\fP أو \fBCS7\fP أو \fBCS8\fP. .TP \fBCSTOPB\fP يضبط بتّي توقف، بدلاً من بت واحد. .TP \fBCREAD\fP يمكّن المستقبل. .TP \fBPARENB\fP يمكّن توليد التكافؤ عند الإخراج والتحقق من التكافؤ عند الإدخال. .TP \fBPARODD\fP إذا ضُبط، يكون التكافؤ للإدخال والإخراج فرديًا؛ وإلا يُستخدم التكافؤ الزوجي. .TP \fBHUPCL\fP يخفض خطوط تحكم المودم بعد أن يُغلق آخر عملية الجهاز (إنهاء الاتصال). .TP \fBCLOCAL\fP يتجاهل خطوط تحكم المودم. .TP \fBLOBLK\fP (ليس في POSIX) يحجب الإخراج من طبقة شل غير حالية. للاستخدام بواسطة \fBshl\fP (طبقات الشل). (لم يُطبَّق على Linux.) .TP \fBCIBAUD\fP (ليس في POSIX) قناع لسرعات الإدخال. قيم بتات \fBCIBAUD\fP هي نفس قيم بتات \fBCBAUD\fP، مُزاحة لليسار بمقدار \fBIBSHIFT\fP بت. [يتطلب \fB_BSD_SOURCE\fP أو \fB_SVID_SOURCE\fP] (لم يُطبَّق في glibc، مدعوم على Linux عبر ioctls \fBTCGET\fP* و \fBTCSET\fP*؛ انظر \fBioctl_tty\fP(2)) .TP \fBCMSPAR\fP (ليس في POSIX) استخدم تكافؤ "لزق" (علامة/فراغ) (مدعوم على أجهزة تسلسلية معينة): إذا وُضع \fBPARODD\fP، فإن بت التكافؤ يكون دائمًا 1؛ إذا لم يُوضع \fBPARODD\fP، فإن بت التكافؤ يكون دائمًا 0. [يتطلب \fB_BSD_SOURCE\fP أو \fB_SVID_SOURCE\fP] .TP \fBCRTSCTS\fP (ليس في POSIX) فعّل التحكم في التدفق RTS/CTS (عتاد). [يتطلب \fB_BSD_SOURCE\fP أو \fB_SVID_SOURCE\fP] .P ثوابت العلم \fIc_lflag\fP: .TP \fBISIG\fP عند استلام أي من المحارف INTR، QUIT، SUSP، أو DSUSP، يولّد الإشارة المقابلة. .TP \fBICANON\fP فعّل الوضع القانوني (موصوف أدناه). .TP \fBXCASE\fP .\" glibc is probably now wrong to allow .\" Define .\" .B _XOPEN_SOURCE .\" to expose .\" .BR XCASE . (ليس في POSIX؛ غير مدعوم تحت Linux) إذا وُضع \fBICANON\fP أيضًا، الطرفية تكون أحرف كبيرة فقط. يُحوّل الإدخال إلى أحرف صغيرة، باستثناء المحارف المسبوقة بـ \[rs]. عند الإخراج، تُسبق الأحرف الكبيرة بـ \[rs] وتُحوّل الأحرف الصغيرة إلى أحرف كبيرة. [يتطلب \fB_BSD_SOURCE\fP أو \fB_SVID_SOURCE\fP أو \fB_XOPEN_SOURCE\fP] .TP \fBECHO\fP صدى محارف الإدخال. .TP \fBECHOE\fP إذا وُضع \fBICANON\fP أيضًا، يمحو محرف ERASE محرف الإدخال السابق، ويمحو WERASE الكلمة السابقة. .TP \fBECHOK\fP إذا وُضع \fBICANON\fP أيضًا، يمحو محرف KILL السطر الحالي. .TP \fBECHONL\fP إذا وُضع \fBICANON\fP أيضًا، أصدِ محرف NL حتى لو لم يُوضع ECHO. .TP \fBECHOCTL\fP (ليس في POSIX) إذا وُضع \fBECHO\fP أيضًا، تُصدى المحارف الخاصة بالطرفية غير TAB، NL، START، وSTOP كـ \fB\[ha]X\fP، حيث X هو المحرف برمز ASCII أكبر بمقدار 0x40 من المحرف الخاص. على سبيل المثال، المحرف 0x08 (BS) يُصدى كـ \fB\[ha]H\fP. [يتطلب \fB_BSD_SOURCE\fP أو \fB_SVID_SOURCE\fP] .TP \fBECHOPRT\fP (غير موجود في POSIX) إذا وُضعت \fBICANON\fP و \fBECHO\fP أيضًا، تُطبع المحارف أثناء مسحها. [يتطلب \fB_BSD_SOURCE\fP أو \fB_SVID_SOURCE\fP] .TP \fBECHOKE\fP (غير موجود في POSIX) إذا وُضعت \fBICANON\fP أيضًا، يُصدى KILL بمسح كل محرف في السطر، كما هو محدد بواسطة \fBECHOE\fP و \fBECHOPRT\fP. [يتطلب \fB_BSD_SOURCE\fP أو \fB_SVID_SOURCE\fP] .TP \fBDEFECHO\fP (غير موجود في POSIX) يُصدى فقط عندما تقرأ عملية. (غير مطبق على Linux.) .TP \fBFLUSHO\fP (غير موجود في POSIX؛ غير مدعوم تحت Linux) يُفرغ المخرجات. يُبدّل هذا العلم بكتابة محرف DISCARD. [يتطلب \fB_BSD_SOURCE\fP أو \fB_SVID_SOURCE\fP] .TP \fBNOFLSH\fP .\" Stevens lets SUSP only flush the input queue عطّل تفريغ طوابير الإدخال والإخراج عند توليد الإشارات لمحارف INT و QUIT و SUSP. .TP \fBTOSTOP\fP أرسل إشارة \fBSIGTTOU\fP إلى مجموعة عملية خلفية تحاول الكتابة إلى طرفيتها المسيطرة. .TP \fBPENDIN\fP (غير موجود في POSIX؛ غير مدعوم تحت Linux) تُعاد طباعة كل المحارف في طابور الإدخال عند قراءة المحرف التالي. (يتعامل \fBbash\fP(1) مع الكتابة المسبقة بهذه الطريقة.) [يتطلب \fB_BSD_SOURCE\fP أو \fB_SVID_SOURCE\fP] .TP \fBIEXTEN\fP فعّل معالجة الإدخال المعرّفة بالتنفيذ. يجب تفعيل هذا العلم، بالإضافة إلى \fBICANON\fP، لتفسير المحارف الخاصة EOL2 و LNEXT و REPRINT و WERASE، ولتأثير علم \fBIUCLC\fP. .P يُعرِّف مصفوفة \fIc_cc\fP المحارف الخاصة بالطرفية. المؤشرات الرمزية (القيم المبدئية) والمعاني هي: .TP \fBVDISCARD\fP (غير موجود في POSIX؛ غير مدعوم تحت Linux؛ 017، SI، Ctrl\-O) بدّل: ابدأ/أوقف تجاهل المخرجات المعلقة. يُعرف عند وضع \fBIEXTEN\fP، ثم لا يُمرر كإدخال. .TP \fBVDSUSP\fP (غير موجود في POSIX؛ غير مدعوم تحت لينكس؛ 031، EM، Ctrl\-Y) محرف الإيقاف المؤقت المُؤجَّل (DSUSP): يُرسل إشارة \fBSIGTSTP\fP عندما يُقرأ المحرف بواسطة برنامج المستخدم. يُعرَف عند ضبط \fBIEXTEN\fP و \fBISIG\fP، ويدعم النظام التحكم بالمهام، ثم لا يُمرَّر كمدخل. .TP \fBVEOF\fP (004، EOT، Ctrl\-D) محرف نهاية الملف (EOF). بدقة أكثر: يتسبب هذا المحرف في إرسال مخبأة tty المعلَّقة إلى برنامج المستخدم المنتظر دون انتظار نهاية السطر. إذا كان أول محرف في السطر، تُعيد الدالة \fBread\fP(2) في برنامج المستخدم القيمة 0، التي تُشير إلى نهاية الملف. يُعرَف عند ضبط \fBICANON\fP، ثم لا يُمرَّر كمدخل. .TP \fBVEOL\fP (0، NUL) محرف نهاية سطر إضافي (EOL). يُعرَف عند ضبط \fBICANON\fP. .TP \fBVEOL2\fP (غير موجود في POSIX؛ 0، NUL) محرف نهاية سطر آخر (EOL2). يُعرَف عند ضبط \fBICANON\fP. .TP \fBVERASE\fP (0177، DEL، rubout، أو 010، BS، Ctrl\-H، أو أيضًا #) محرف المسح (ERASE). يمسح هذا المحرف السابق الذي لم يُمسح بعد، لكنه لا يمسح ما بعد EOF أو بداية السطر. يُعرَف عند ضبط \fBICANON\fP، ثم لا يُمرَّر كمدخل. .TP \fBVINTR\fP (003، ETX، Ctrl\-C، أو أيضًا 0177، DEL، rubout) محرف المقاطعة (INTR). يُرسل إشارة \fBSIGINT\fP. يُعرَف عند ضبط \fBISIG\fP، ثم لا يُمرَّر كمدخل. .TP \fBVKILL\fP (025، NAK، Ctrl\-U، أو Ctrl\-X، أو أيضًا @) محرف الحذف (KILL). يمسح هذا المدخلات منذ آخر EOF أو بداية السطر. يُعرَف عند ضبط \fBICANON\fP، ثم لا يُمرَّر كمدخل. .TP \fBVLNEXT\fP (غير موجود في POSIX؛ 026، SYN، Ctrl\-V) المحرف التالي الحرفي (LNEXT). يُقتبس محرف الإدخال التالي، مُجرِّدًا إياه من أي معنى خاص محتمل. يُعرَف عند ضبط \fBIEXTEN\fP، ثم لا يُمرَّر كمدخل. .TP \fBVMIN\fP العدد الأدنى من المحارف للقراءة غير القانونية (MIN). .TP \fBVQUIT\fP (034، FS، Ctrl\-\[rs]) محرف الخروج (QUIT). يُرسل إشارة \fBSIGQUIT\fP. يُعرَف عند ضبط \fBISIG\fP، ثم لا يُمرَّر كمدخل. .TP \fBVREPRINT\fP (ليس في POSIX؛ 022، DC2، Ctrl\-R) إعادة طباعة المحارف غير المقروءة (REPRINT). يُعرَف عندما يكون \fBICANON\fP و \fBIEXTEN\fP مضبوطين، ثم لا يُمرر كمدخل. .TP \fBVSTART\fP (021، DC1، Ctrl\-Q) محرف البدء (START). يعيد تشغيل المخرجات التي أوقفها محرف الإيقاف. يُعرَف عندما يكون \fBIXON\fP مضبوطًا، ثم لا يُمرر كمدخل. .TP \fBVSTATUS\fP (ليس في POSIX؛ غير مدعوم في لينكس؛ طلب الحالة: 024، DC4، Ctrl\-T). محرف الحالة (STATUS). يعرض معلومات الحالة في الطرفية، بما في ذلك حالة عملية المقدمة ومقدار وقت وحدة المعالجة المركزية الذي استهلكته. كما يرسل إشارة \fBSIGINFO\fP (غير مدعومة في لينكس) إلى مجموعة عملية المقدمة. .TP \fBVSTOP\fP (023، DC3، Ctrl\-S) محرف الإيقاف (STOP). يوقف المخرجات حتى يُكتب محرف البدء. يُعرَف عندما يكون \fBIXON\fP مضبوطًا، ثم لا يُمرر كمدخل. .TP \fBVSUSP\fP (032، SUB، Ctrl\-Z) محرف التعليق (SUSP). يرسل إشارة \fBSIGTSTP\fP. يُعرَف عندما يكون \fBISIG\fP مضبوطًا، ثم لا يُمرر كمدخل. .TP \fBVSWTCH\fP (ليس في POSIX؛ غير مدعوم في لينكس؛ 0، NUL) محرف التبديل (SWTCH). يُستخدم في System V لتبديل الصدف في \fIطبقات الصدف\fP، سلف التحكم في مهام الصدف. .TP \fBVTIME\fP مهلة بعشرات الثواني للقراءة غير القانونية (TIME). .TP \fBVWERASE\fP (ليس في POSIX؛ 027، ETB، Ctrl\-W) مسح الكلمة (WERASE). يُعرَف عندما يكون \fBICANON\fP و \fBIEXTEN\fP مضبوطين، ثم لا يُمرر كمدخل. .P يمكن تعطيل محرف طرفية خاص فردي بضبط قيمة العنصر \fIc_cc\fP المقابل إلى \fB_POSIX_VDISABLE\fP. .P قيم الرموز الفرعية أعلاه كلها مختلفة، باستثناء أن \fBVTIME\fP، \fBVMIN\fP قد يكون لهما نفس قيمة \fBVEOL\fP، \fBVEOF\fP، على التوالي. في الوضع غير القانوني، يُستبدل معنى المحرف الخاص بمعنى المهلة. لشرح \fBVMIN\fP و \fBVTIME\fP، انظر وصف الوضع غير القانوني أدناه. .SS "استرجاع وتغيير إعدادات الطرفية" تسترد \fBtcgetattr\fP() المعاملات المرتبطة بالكائن المشار إليه بـ \fIfd\fP، وتخزنها في بنية \fItermios\fP المشار إليها بـ \fItermios_p\fP. قد تُستدعى هذه الدالة من عملية خلفية؛ ومع ذلك، قد تُغير سِمات الطرفية لاحقًا بواسطة عملية أمامية. .P تضبط \fBtcsetattr\fP() المعاملات المرتبطة بالطرفية (ما لم يكن الدعم مطلوبًا من العتاد الأساسي غير المتاح) من بنية \fItermios\fP المشار إليها بـ \fItermios_p\fP. يحدد \fIoptional_actions\fP متى تسري التغييرات: .TP \fBTCSANOW\fP يحدث التغيير فورًا. .TP \fBTCSADRAIN\fP يحدث التغيير بعد إرسال كل المخرجات المكتوبة إلى \fIfd\fP. ينبغي استخدام هذا الخيار عند تغيير المعاملات التي تؤثر على المخرجات. .TP \fBTCSAFLUSH\fP يحدث التغيير بعد إرسال كل المخرجات المكتوبة إلى الكائن المشار إليه بـ \fIfd\fP، ويُتخلص من كل المدخلات التي وردت ولكن لم تُقرأ قبل إجراء التغيير. .SS "الوضع القانوني وغير القانوني" يحدد إعداد العلم القانوني ب\fBICANON\fP في \fIc_lflag\fP ما إذا كانت النهاية الطرفية تعمل في الوضع القانوني (ب\fBICANON\fP مضبوط) أم الوضع غير القانوني (ب\fBICANON\fP غير مضبوط). مبدئيًا، ب\fBICANON\fP مضبوط. .P في الوضع القانوني: .IP \[bu] 3 تُتاح المدخلات سطرًا سطرًا. يتوفر سطر المدخلات عند كتابة أحد محددات السطر (NL، EOL، EOL2 ؛ أو EOF في بداية السطر). باستثناء حالة EOF، يُضمن محدد السطر في المخزن المؤقت الذي ترجعه ب\fBread\fP(2). .IP \[bu] تُفعّل تحرير السطر (ERASE، KILL؛ وإذا كان العلم ب\fBIEXTEN\fP مضبوطًا: WERASE، REPRINT، LNEXT). ترجع ب \fBread\fP(2). سطرًا واحدًا من المدخلات على الأكثر؛ إذا طلبت ب\fBread\fP(2). عدد بايتات أقل مما هو متاح في سطر المدخلات الحالي، فتُقرأ فقط عدد البايتات المطلوبة، وتكون المحارف المتبقية متاحة لاستدعاء ب\fBread\fP(2). مستقبلي. .IP \[bu] الحد الأقصى لطول السطر هو 4096 محرفًا (بما في ذلك محرف السطر الجديد الختامي)؛ تُقتطع الأسطر الأطول من 4096 محرفًا. بعد 4095 محرفًا، تستمر معالجة المدخلات (مثل معالجة ب\fBISIG\fP و \fBECHO*\fP)، ولكن يُتخلص من أي بيانات مدخلات بعد 4095 محرفًا حتى (ولكن ليس بما في ذلك) أي سطر جديد ختامي. يضمن هذا أن النهاية الطرفية يمكنها دائمًا استقبال المزيد من المدخلات حتى يمكن قراءة سطر واحد على الأقل. .P في الوضع غير القانوني، تتاح المدخلات فورًا (دون حاجة المستخدم لكتابة محرف محدد سطر)، ولا تُجرى أي معالجة للمدخلات، ويُعطّل تحرير السطر. يقبل المخزن المؤقت للقراءة 4095 محرفًا فقط؛ يوفر هذا المساحة اللازمة لمحرف سطر جديد إذا تحول وضع المدخلات إلى القانوني. تحدد إعدادات MIN (\fIc_cc[VMIN]\fP) وTIME (\fIc_cc[VTIME]\fP) الظروف التي يكتمل فيها ب \fBread\fP(2) ؛ هناك أربع حالات مميزة: .TP MIN == 0، TIME == 0 (قراءة استقصائية) إذا توفرت بيانات، ترجع ب\fBread\fP(2) فورًا، مع أقل عدد من البايتات المتاحة أو عدد البايتات المطلوبة. إذا لم تتوفر بيانات، ترجع ب \fBread\fP(2) 0. .TP MIN > 0، TIME == 0 (قراءة حاجزة) تحجز ب\fBread\fP(2) حتى تتوفر بايتات MIN، وترجع حتى عدد البايتات المطلوبة. .TP MIN == 0، TIME > 0 (قراءة مع مهلة) يحدد TIME حدًا لمؤقت بعشر الثانية. يُبدأ المؤقت عند استدعاء ب\fBread\fP(2). ترجع ب\fBread\fP(2) إما عندما يتوفر بايت واحد على الأقل من البيانات، أو عندما ينتهي المؤقت. إذا انتهى المؤقت دون توفر أي مدخلات، ترجع ب\fBread\fP(2) 0. إذا كانت البيانات متوفرة بالفعل وقت استدعاء ب\fBread\fP(2)، يتصرف الاستدعاء كما لو أن البيانات وردت فورًا بعد الاستدعاء. .TP MIN > 0، TIME > 0 (قراءة مع مهلة بين البايتات) يُحدد TIME حدًا لمؤقت بعشر الثانية. بمجرد أن يصبح البايت الأول من الإدخال متاحًا، يُعاد تشغيل المؤقت بعد استلام كل بايت إضافي. تعود \fBread\fP(2) عند تحقق أي من الشروط التالية: .RS .IP \[bu] 3 اُستلم MIN بايت. .IP \[bu] ينتهي المؤقت بين البايتات. .IP \[bu] .\" e.g., Solaris تم استلام عدد البايتات المطلوب بواسطة \fBread\fP(2). (لا يُحدد POSIX شرط الإنهاء هذا، وفي بعض التطبيقات الأخرى لا تعود \fBread\fP(2) في هذه الحالة.) .RE .IP لأن المؤقت يُبدأ فقط بعد أن يصبح البايت الأول متاحًا، سيُقرأ بايت واحد على الأقل. إذا كانت البيانات متاحة بالفعل وقت استدعاء \fBread\fP(2)، يتصرف الاستدعاء كما لو أن البيانات استُلمت فورًا بعد الاستدعاء. .P .\" POSIX.1-2008 XBD 11.1.7 لا يُحدد POSIX ما إذا كان إعداد علامة حالة الملف \fBO_NONBLOCK\fP له الأولوية على إعدادات MIN وTIME. إذا كان \fBO_NONBLOCK\fP مضبوطًا، قد تعود \fBread\fP(2) في الوضع غير القانوني فورًا، بغض النظر عن إعداد MIN أو TIME. علاوة على ذلك، إذا لم تكن البيانات متاحة، يسمح POSIX لـ \fBread\fP(2) في الوضع غير القانوني بالعودة إما 0، أو \-1 مع تعيين \fIerrno\fP إلى \fBEAGAIN\fP. .SS "الوضع الخام" يضبط \fBcfmakeraw\fP() الطرفية على شيء يشبه الوضع "الخام" لمشغل الطرفية القديم الإصدار 7: الإدخال متاح حرفًا بحرف، الصدى معطل، وجميع المعالجة الخاصة لأحرف الإدخال والإخراج للطرفية معطلة. تُضبط سمات الطرفية كما يلي: .P .in +4n .EX termios_p\->c_iflag &= \[ti](IGNBRK | BRKINT | PARMRK | ISTRIP | INLCR | IGNCR | ICRNL | IXON); termios_p\->c_oflag &= \[ti]OPOST; termios_p\->c_lflag &= \[ti](ECHO | ECHONL | ICANON | ISIG | IEXTEN); termios_p\->c_cflag &= \[ti](CSIZE | PARENB); termios_p\->c_cflag |= CS8; .EE .in .\" .SS "التحكم في الخط" يرسل \fBtcsendbreak\fP() دفقًا مستمرًا من البتات ذات القيمة صفر لمدة محددة، إذا كانت الطرفية تستخدم إرسال بيانات تسلسلي غير متزامن. إذا كانت \fIduration\fP صفرًا، يُرسل بتات ذات قيمة صفر لمدة 0.25 ثانية على الأقل، ولا تزيد عن 0.5 ثانية. إذا كانت \fIduration\fP غير صفرية، يُرسل بتات ذات قيمة صفر لمدة زمنية محددة بالتطبيق. .P إذا كانت الطرفية لا تستخدم إرسال بيانات تسلسلي غير متزامن، تعود \fBtcsendbreak\fP() دون اتخاذ أي إجراء. .P ينتظر \fBtcdrain\fP() حتى يُرسل كل الإخراج المكتوب إلى الكائن المشار إليه بواسطة \fIfd\fP. .P يتجاهل \fBtcflush\fP() البيانات المكتوبة إلى الكائن المشار إليه بواسطة \fIfd\fP ولكن لم تُرسل، أو البيانات المستلمة ولكن لم تُقرأ، اعتمادًا على قيمة \fIqueue_selector\fP: .TP \fBTCIFLUSH\fP يُفرغ البيانات المستلمة ولكن لم تُقرأ. .TP \fBTCOFLUSH\fP يُفرغ البيانات المكتوبة ولكن لم تُرسل. .TP \fBTCIOFLUSH\fP يُفرغ كلاً من البيانات المستلمة ولكن لم تُقرأ، والبيانات المكتوبة ولكن لم تُرسل. .P تعلق الدالة \fBtcflow\fP() إرسال أو استقبال البيانات على الكائن المشار إليه بواسطة \fIfd\fP، اعتمادًا على قيمة \fIaction\fP: .TP \fBTCOOFF\fP تعلق الإخراج. .TP \fBTCOON\fP تعيد تشغيل الإخراج المعلق. .TP \fBTCIOFF\fP ترسل حرف STOP، الذي يوقف جهاز الطرفية عن إرسال البيانات إلى النظام. .TP \fBTCION\fP ترسل حرف START، الذي يبدأ جهاز الطرفية بإرسال البيانات إلى النظام. .P المبدئي عند فتح ملف طرفية هو أن لا يُعلق إدخاله ولا إخراجه. .SS "سرعة الخط" تُوفر دوال معدل الباود للحصول على قيم معدلات الباود للإدخال والإخراج في بنية \fItermios\fP وتعيينها. لا تسري القيم الجديدة حتى تُستدعى \fBtcsetattr\fP() بنجاح. .P تعيين السرعة إلى \fBB0\fP يوجه المودم إلى "إنهاء الاتصال". قد يُغير معدل البت الفعلي المقابل لـ \fBB38400\fP باستخدام \fBsetserial\fP(8). .P تُخزن معدلات الباود للإدخال والإخراج في بنية \fItermios\fP. .P ترجع الدالة \fBcfgetospeed\fP() معدل الباود للإخراج المخزن في بنية \fItermios\fP المشار إليها بواسطة \fItermios_p\fP. .P تضبط الدالة \fBcfsetospeed\fP() معدل الباود للإخراج المخزن في بنية \fItermios\fP المشار إليها بواسطة \fItermios_p\fP إلى \fIspeed\fP، والتي يجب أن تكون إحدى هذه الثوابت: .RS .TP \fBB0\fP .TQ \fBB50\fP .TQ \fBB75\fP .TQ \fBB110\fP .TQ \fBB134\fP .TQ \fBB150\fP .TQ \fBB200\fP .TQ \fBB300\fP .TQ \fBB600\fP .TQ \fBB1200\fP .TQ \fBB1800\fP .TQ \fBB2400\fP .TQ \fBB4800\fP .TQ \fBB9600\fP .TQ \fBB19200\fP .TQ \fBB38400\fP .TQ \fBB57600\fP .TQ \fBB115200\fP .TQ \fBB230400\fP .TQ \fBB460800\fP .TQ \fBB500000\fP .TQ \fBB576000\fP .TQ \fBB921600\fP .TQ \fBB1000000\fP .TQ \fBB1152000\fP .TQ \fBB1500000\fP .TQ \fBB2000000\fP .RE .P تُدعم هذه الثوابت إضافيًا على بنية SPARC: .RS .TP \fBB76800\fP .TQ \fBB153600\fP .TQ \fBB307200\fP .TQ \fBB614400\fP .RE .P تُدعم هذه الثوابت إضافيًا على البنى غير SPARC: .RS .TP \fBB2500000\fP .TQ \fBB3000000\fP .TQ \fBB3500000\fP .TQ \fBB4000000\fP .RE .P نظرًا للاختلافات بين البنى، ينبغي للتطبيقات المنقولة التحقق من تعريف ثابت \fBB\fP\fInnn\fP معين قبل استخدامه. .P يُستخدم معدل الباود الصفري، \fBB0\fP، لإنهاء الاتصال. إذا حُدد \fBB0\fP، فلن تُفعل خطوط تحكم المودم بعد الآن. عادةً، سيفصل هذا الخط. \fBCBAUDEX\fP هو قناع للسرعات التي تتجاوز تلك المعرفة في POSIX.1 (57600 وما فوق). وبالتالي، فإن \fBB57600\fP & \fBCBAUDEX\fP غير صفري. .P يمكن ضبط معدل الباود إلى قيمة غير تلك المعرفة بثوابت \fBB\fP\fInnn\fP عبر ioctl \fBTCSETS2\fP؛ انظر \fBioctl_tty\fP(2). .P تُرجع \fBcfgetispeed\fP() معدل الباود المدخل المخزن في بنية \fItermios\fP. .P تضبط \fBcfsetispeed\fP() معدل الباود المدخل المخزن في بنية \fItermios\fP إلى \fIspeed\fP، والذي يجب تحديده كأحد ثوابت \fBB\fP\fInnn\fP المذكورة أعلاه لـ \fBcfsetospeed\fP(). إذا ضُبط معدل الباود المدخل على الثابت الحرفي \fB0\fP (وليس الثابت الرمزي \fBB0\fP)، فسيساوي معدل الباود المدخل معدل الباود المخرج. .P \fBcfsetspeed\fP() هو امتداد 4.4BSD. يأخذ نفس المعاملات كـ \fBcfsetispeed\fP()، ويضبط السرعة المدخلة والمخرجة معًا. .SH "قيمة الإرجاع" تُرجع \fBcfgetispeed\fP() معدل الباود المدخل المخزن في بنية \fItermios\fP. .P تُرجع \fBcfgetospeed\fP() معدل الباود المخرج المخزن في بنية \fItermios\fP. .P جميع الدوال الأخرى تُرجع: .TP \fB0\fP عند النجاح. .TP \fB\-1\fP عند الفشل وتضبط \fIerrno\fP للإشارة إلى الخطأ. .P لاحظ أن \fBtcsetattr\fP() تُرجع النجاح إذا أمكن تنفيذ \fIأي\fP من التغييرات المطلوبة بنجاح. لذلك، عند إجراء تغييرات متعددة، قد يكون من الضروري متابعة هذه الاستدعاء باستدعاء آخر لـ \fBtcgetattr\fP() للتحقق من تنفيذ جميع التغييرات بنجاح. .SH السمات للاطلاع على شرح للمصطلحات المستخدمة في هذا القسم، انظر \fBattributes\fP(7). .TS allbox; lbx lb lb l l l. الواجهة السمة القيمة T{ .na .nh \fBtcgetattr\fP(), \fBtcsetattr\fP(), \fBtcdrain\fP(), \fBtcflush\fP(), \fBtcflow\fP(), \fBtcsendbreak\fP(), \fBcfmakeraw\fP(), \fBcfgetispeed\fP(), \fBcfgetospeed\fP(), \fBcfsetispeed\fP(), \fBcfsetospeed\fP(), \fBcfsetspeed\fP() T} سلامة الخيوط MT\-Safe .TE .\" FIXME: The markings are different from that in the glibc manual. .\" markings in glibc manual are more detailed: .\" .\" tcsendbreak: MT-Unsafe race:tcattr(filedes)/bsd .\" tcflow: MT-Unsafe race:tcattr(filedes)/bsd .\" .\" glibc manual says /bsd indicate the preceding marker only applies .\" when the underlying kernel is a BSD kernel. .\" So, it is safety in Linux kernel. .SH المعايير .TP \fBtcgetattr\fP() .TQ \fBtcsetattr\fP() .TQ \fBtcsendbreak\fP() .TQ \fBtcdrain\fP() .TQ \fBtcflush\fP() .TQ \fBtcflow\fP() .TQ \fBcfgetispeed\fP() .TQ \fBcfgetospeed\fP() .TQ \fBcfsetispeed\fP() .TQ \fBcfsetospeed\fP() POSIX.1\-2008. .TP \fBcfmakeraw\fP() .TQ \fBcfsetspeed\fP() BSD. .SH التاريخ .TP \fBtcgetattr\fP() .TQ \fBtcsetattr\fP() .TQ \fBtcsendbreak\fP() .TQ \fBtcdrain\fP() .TQ \fBtcflush\fP() .TQ \fBtcflow\fP() .TQ \fBcfgetispeed\fP() .TQ \fBcfgetospeed\fP() .TQ \fBcfsetispeed\fP() .TQ \fBcfsetospeed\fP() POSIX.1\-2001. .TP \fBcfmakeraw\fP() .TQ \fBcfsetspeed\fP() BSD. .SH ملاحظات تحتوي UNIX\ V7 والعديد من الأنظمة اللاحقة على قائمة بمعدلات الباود حيث بعد القيم \fBB0\fP حتى \fBB9600\fP يُوجد الثابتان \fBEXTA\fP، \fBEXTB\fP ("خارجي A" و"خارجي B"). تمدد العديد من الأنظمة القائمة بمعدلات باود أعلى بكثير. .P .\" libc4 until 4.7.5, glibc for sysv: EINVAL for duration > 0. .\" libc4.7.6, libc5, glibc for unix: duration in ms. .\" glibc for bsd: duration in us .\" glibc for sunos4: ignore duration يختلف تأثير \fIالمدة\fP غير الصفرية مع \fBtcsendbreak\fP(). تحدد SunOS انقطاعًا لمدة \fIduration\ *\ N\fP ثانية، حيث \fIN\fP لا يقل عن 0.25 ولا يزيد عن 0.5. ترسل Linux، AIX، DU، Tru64 انقطاعًا لمدة \fIduration\fP ملي ثانية. تتجاهل FreeBSD وNetBSD وHP\-UX وMacOS قيمة \fIduration\fP. تحت Solaris وUnixWare، تتصرف \fBtcsendbreak\fP() مع \fIالمدة\fP غير الصفرية مثل \fBtcdrain\fP(). .SH العلل .\" kernel 77e5bff1640432f28794a00800955e646dcd7455 .\" glibc 573963e32ffac46d9891970ddebde2ac3212c5c0 على بنية Alpha قبل Linux 4.16 (وglibc قبل glibc 2.28)، كانت قيمة \fBXTABS\fP مختلفة عن \fBTAB3\fP وتجاهلها كود نظام الخط \fBN_TTY\fP لمشغل الطرفية نتيجة لذلك (لأنها لم تكن جزءًا من قناع \fBTABDLY\fP). .SH "انظر أيضًا" \fBreset\fP(1)، \fBsetterm\fP(1)، \fBstty\fP(1)، \fBtput\fP(1)، \fBtset\fP(1)، \fBtty\fP(1)، \fBioctl_console\fP(2)، \fBioctl_tty\fP(2)، \fBcc_t\fP(3type)، \fBspeed_t\fP(3type)، \fBtcflag_t\fP(3type)، \fBsetserial\fP(8) .PP .SH ترجمة تُرجمت هذه الصفحة من الدليل بواسطة زايد السعيدي . .PP هذه الترجمة هي وثيقة مجانية؛ راجع .UR https://www.gnu.org/licenses/gpl-3.0.html رخصة جنو العامة الإصدار 3 .UE أو ما بعده للاطلاع على شروط حقوق النشر. لا توجد أي ضمانات. .PP إذا وجدت أي أخطاء في ترجمة صفحة الدليل هذه، يرجى إرسال بريد إلكتروني إلى قائمة بريد المترجمين: .MT kde-l10n-ar@kde.org .ME .