tty --- توابع کنترل پایانه

کد منبع: Lib/tty.py


ماژول tty توابعی را برای قرار دادن tty در حالت‌های cbreak و raw تعریف می‌کند.

از آن‌جایی که به ماژول termios نیاز دارد، فقط در یونیکس کار می‌کند.

ماژول tty توابع زیر را تعریف می‌کند:

tty.cfmakeraw(mode)

فهرست ویژگی‌های tty، mode، را که فهرستی مانند فهرست برگردانده‌شده از termios.tcgetattr() است، به فهرست ویژگی‌های یک tty در حالت خام تبدیل می‌کند.

اضافه شده در نسخه‌ی 3.12.

tty.cfmakecbreak(mode)

فهرست ویژگی‌های tty با نام mode را، که فهرستی مانند فهرستی است که termios.tcgetattr() آن را برمی‌گرداند، به فهرست ویژگی‌های یک tty در حالت cbreak تبدیل کنید.

این کار پرچم‌های حالت محلی ECHO و ICANON را در mode پاک می‌کند و همچنین حداقل ورودی را روی ۱ بایت بدون تأخیر تنظیم می‌کند.

اضافه شده در نسخه‌ی 3.12.

تغییر یافته در نسخه‌ی 3.12.2: پرچم ICRNL دیگر پاک نمی‌شود. این با رفتار stty cbreak در لینوکس و مک‌اواس و آنچه setcbreak() از نظر تاریخی انجام می‌داد، مطابقت دارد.

tty.setraw(fd, when=termios.TCSAFLUSH)

حالت توصیف‌گر پرونده fd را به حالت خام تغییر می‌دهد. اگر when حذف شود، پیش‌فرض آن termios.TCSAFLUSH است و به termios.tcsetattr() ارسال می‌شود. مقدار بازگشتی termios.tcgetattr() پیش از تنظیم fd به حالت خام ذخیره می‌شود؛ این مقدار بازگردانده می‌شود.

تغییر یافته در نسخه‌ی 3.12: مقدار بازگشتی اکنون ویژگی‌های اصلی tty است، به‌جای None.

tty.setcbreak(fd, when=termios.TCSAFLUSH)

حالت توصیف‌گر پرونده fd را به cbreak تغییر می‌دهد. اگر when حذف شود، مقدار پیش‌فرض آن termios.TCSAFLUSH است و به termios.tcsetattr() ارسال می‌شود. مقدار بازگشتی termios.tcgetattr() پیش از تنظیم fd به حالت cbreak ذخیره می‌شود؛ این مقدار بازگردانده می‌شود.

این کار پرچم‌های حالت محلی ECHO و ICANON را پاک می‌کند و همچنین حداقل ورودی را روی ۱ بایت بدون تأخیر تنظیم می‌کند.

تغییر یافته در نسخه‌ی 3.12: مقدار بازگشتی اکنون ویژگی‌های اصلی tty است، به‌جای None.

تغییر یافته در نسخه‌ی 3.12.2: پرچم ICRNL دیگر پاک نمی‌شود. این کار رفتار پایتون 3.11 و نسخه‌های پیش‌تر را بازمی‌گرداند و همچنین با آنچه Linux، macOS و BSDها در صفحه‌های راهنمای stty(1) خود درباره حالت cbreak شرح می‌دهند، مطابقت دارد.

همچنین ملاحظه نمائید

ماژول termios

رابط کنترل پایانه در سطح پایین.