termios --- کنترل tty به سبک POSIX¶
این ماژول رابطی برای فراخوانیهای POSIX جهت کنترل ورودی/خروجی tty فراهم میکند. برای توضیح کامل این فراخوانیها، صفحهی راهنمای یونیکس termios(3) را ببینید. این ماژول تنها برای نسخههایی از یونیکس در دسترس است که از کنترل ورودی/خروجی tty بهسبک termios POSIX پشتیبانی میکنند و در هنگام نصب پیکربندی شدهاند.
تمام توابع این ماژول یک توصیفگر فایل با نام fd را بهعنوان نخستین آرگومان خود دریافت میکنند. این میتواند یک توصیفگر فایل از نوع عدد صحیح باشد، مانند آنچه sys.stdin.fileno() بازمیگرداند، یا یک file object، مانند خود sys.stdin.
این ماژول همچنین تمام ثابتهای مورد نیاز برای کار با توابع ارائهشده در اینجا را تعریف میکند؛ این ثابتها همان نام همتاهایشان در C را دارند. لطفاً برای اطلاعات بیشتر درباره استفاده از این رابطهای کنترل پایانه، به مستندات سیستم خود مراجعه کنید.
این ماژول توابع زیر را تعریف میکند:
-
termios.tcgetattr(fd)¶
فهرستی حاوی ویژگیهای tty برای توصیفگر فایل fd برمیگرداند، به این صورت: [iflag, oflag, cflag, lflag, ispeed, ospeed, cc] که در آن cc فهرستی از نویسههای ویژه tty است (هرکدام رشتهای به طول ۱، بهجز آیتمهای دارای اندیسهای VMIN و VTIME، که وقتی این فیلدها تعریف شده باشند، عدد صحیح هستند). تفسیر پرچمها و سرعتها و همچنین اندیسدهی در آرایهی cc باید با استفاده از ثابتهای نمادین تعریفشده در ماژول termios انجام شود.
-
termios.VMIN¶
-
termios.VTIME¶
Indices into the cc array controlling a non-canonical read: the minimum
number of characters to read and the timeout in tenths of a second,
respectively.
-
termios.tcsetattr(fd, when, attributes)¶
ویژگیهای tty را برای توصیفگر فایل fd با استفاده از attributes تنظیم کنید، که فهرستی مانند فهرست بازگرداندهشده توسط tcgetattr() است. آرگومان when تعیین میکند که ویژگیها چه زمانی تغییر کنند:
-
termios.TCSANOW¶
ویژگیها را بلافاصله تغییر دهید.
-
termios.TCSADRAIN¶
تغییر ویژگیها پس از ارسال تمام خروجی صفشده.
-
termios.TCSAFLUSH¶
ویژگیها را پس از ارسال تمام خروجیهای در صف و دور ریختن تمام ورودیهای در صف تغییر دهید.
-
termios.tcsendbreak(fd, duration)¶
یک break را روی توصیفگر فایل fd ارسال کنید. یک duration صفر، یک break را برای ۰٫۲۵ تا ۰٫۵ ثانیه ارسال میکند؛ یک duration غیرصفر معنایی وابسته به سیستم دارد.
-
termios.tcdrain(fd)¶
صبر کنید تا تمام خروجی نوشتهشده در توصیفگر فایل fd ارسال شود.
-
termios.tcflush(fd, queue)¶
دادههای در صف روی توصیفگر فایل fd را دور بریزید. انتخابگر queue مشخص میکند کدام صف: TCIFLUSH برای صف ورودی، TCOFLUSH برای صف خروجی، یا TCIOFLUSH برای هر دو صف.
-
termios.TCIFLUSH¶
-
termios.TCOFLUSH¶
-
termios.TCIOFLUSH¶
Values for the queue selector: the input queue, the output queue, or
both queues, respectively.
-
termios.tcflow(fd, action)¶
تعلیق یا ازسرگیری ورودی یا خروجی روی توصیفگر فایل fd. آرگومان action میتواند برای تعلیق خروجی TCOOFF، برای ازسرگیری خروجی TCOON، برای تعلیق ورودی TCIOFF، یا برای ازسرگیری ورودی TCION باشد.
-
termios.TCOOFF¶
-
termios.TCOON¶
-
termios.TCIOFF¶
-
termios.TCION¶
Values for the action argument: suspend output, restart output,
suspend input, or restart input, respectively.
-
termios.tcgetwinsize(fd)¶
یک تاپل (ws_row, ws_col) بازمیگرداند که حاوی اندازهی پنجرهی tty برای توصیفگر فایل fd است. نیازمند termios.TIOCGWINSZ یا termios.TIOCGSIZE است.
اضافه شده در نسخهی 3.11.
-
termios.TIOCGWINSZ¶
-
termios.TIOCGSIZE¶
ioctl() requests for querying the tty window size. Not defined on
all platforms; tcgetwinsize() requires at least one of them.
-
termios.tcsetwinsize(fd, winsize)¶
اندازهی پنجرهی tty برای توصیفگر فایل fd را از winsize تنظیم میکند، که یک تاپل دو آیتمی (ws_row, ws_col) مانند آنچه توسط tcgetwinsize() برگردانده میشود، است. نیاز است حداقل یکی از جفتهای (termios.TIOCGWINSZ، termios.TIOCSWINSZ)؛ (termios.TIOCGSIZE، termios.TIOCSSIZE) تعریف شده باشد.
اضافه شده در نسخهی 3.11.
-
termios.TIOCSWINSZ¶
-
termios.TIOCSSIZE¶
ioctl() requests for setting the tty window size. Not defined on all
platforms; see tcsetwinsize() for the required pairs.
همچنین ببینید
- ماژول
tty توابع تسهیلکننده برای عملیات رایج کنترل پایانه.
مثال¶
در اینجا تابعی آمده است که گذرواژه را با بازتاب غیرفعال درخواست میکند. به روش استفاده از یک فراخوانی جداگانه tcgetattr() و یک دستور try ... finally توجه کنید تا اطمینان حاصل شود که ویژگیهای قدیمی tty، صرفنظر از هر اتفاقی که بیفتد، دقیقاً بازیابی میشوند:
def getpass(prompt="Password: "):
import termios, sys
fd = sys.stdin.fileno()
old = termios.tcgetattr(fd)
new = termios.tcgetattr(fd)
new[3] = new[3] & ~termios.ECHO # lflags
try:
termios.tcsetattr(fd, termios.TCSADRAIN, new)
passwd = input(prompt)
finally:
termios.tcsetattr(fd, termios.TCSADRAIN, old)
return passwd
©
حق نشر 2001 Python Software Foundation.
این صفحه تحت مجوز بنیاد نرمافزار پایتون نسخه ۲ منتشر شده است.
مثالها، دستورالعملها، و سایر کدهای موجود در مستندات همچنین تحت مجوز بدون بند BSD منتشر شدهاند.
برای اطلاعات بیشتر به
تاریخچه و مجوز مراجعه کنید.
بنیاد نرمافزار پایتون یک شرکت غیرانتفاعی است.
لطفاً کمک مالی کنید.
آخرین بهروزرسانی در نوامبر 12, 2026 (06:19 UTC).
آیا
اشکالی یافتید؟
ساخته شده با
Sphinx 9.1.0.