یک برنامهی C بنویسید که با استفاده از هدر و فراخوانی ioctl اندازهٔ پنجرهٔ ترمینال (تعداد سطرها و ستونها) را خوانده و در خروجی چاپ کند.
13.0 بازدید آخرین ویرایش در 201 روز قبل ساعت 03:58 0.0
برای حل این مسئله از struct winsize و دستور ioctl استفاده کنید: هدرهای لازم شامل ، و هستند؛ یک متغیر struct winsize تعریف کرده و ioctl(STDOUT_FILENO, TIOCGWINSZ, &ws) را فراخوانی کنید و سپس ws.ws_row و ws.ws_col را چاپ کنید. نکات: مقدار بازگشتی ioctl را بررسی کنید و در صورت خطا پیام مناسبی چاپ یا یک مقدار پیشفرض (مثلاً 80x24) استفاده کنید، و برنامه را با gcc و گزینههای هشدار مانند -Wall کامپایل کنید.
1 پاسخ
جدید ترین قدیمی ترین بالاترین امتیاز پاسخ های من
در حال بارگیری...
برای ارسال پاسخ باید با حساب کاربری وارد شوید.
ورود به حساب کاربری
برای پایداری، مقدار بازگشتی ioctl را بررسی کنید و در صورت خطا مقدار پیشفرض 80x24 چاپ شود. از خروجی STDOUT_FILENO استفاده کنید و هدرهای <sys/ioctl.h>، <unistd.h> و <stdio.h> را اضافه کنید تا struct winsize و TIOCGWINSZ در دسترس باشند. در کامپایل نیز از گزینههای هشدار مانند gcc -Wall -Wextra استفاده کنید تا خطر فراموشی بررسی بازگشتی آشکار شود. اگر ioctl موفق نشود یا ترمینال اندازهای ندارد، برنامه باید با پیامی مناسب یا مقدار جایگزین خروجی دهد تا رفتار پیشبینیپذیر باشد.
گزارش