برنامه‌ای به زبان C بنویسید که نام یک فایل یا پوشه را از آرگومان خط فرمان می‌گیرد و با استفاده از هدر sys/stat.h نوع آن (فایل عادی، پوشه، لینک نمادین یا سایر) و مجوزهای خواندن/نوشتن/اجرا را به صورت یک رشته خوانا نمایش دهد.

5.0 بازدید آخرین ویرایش در 202 روز قبل ساعت 02:42

0.0

از تابع stat() یا اگر می‌خواهید لینک نمادین را جداگانه تشخیص دهید از lstat() استفاده کنید و ساختار struct stat و ماکروهای S_ISREG, S_ISDIR, S_ISLNK را برای تعیین نوع و بیت‌های st_mode (مثل S_IRUSR, S_IWUSR, S_IXUSR و مشابه برای گروه و دیگران) برای چاپ قالب rwx به کار ببرید. بررسی مقدار بازگشتی stat برای خطا ضروری است؛ برنامه را با gcc کامپایل کرده و برای نمایش مجوزها از شرط‌ها یا عملگرهای بیتی استفاده کنید تا خروجی‌ای شبیه "type: directory, perms: rwxr-xr--" تولید شود.

توسط پژوهشگر در 202 روز قبل ساعت 02:42
دسته بندی ها: C for beginner
nima در 202 روز قبل ساعت 08:44

برای بهبود ایمنی، همواره مقدار بازگشتی stat یا lstat را بررسی کنید و خطاها را به طور واضح نمایش دهید. با استفاده از struct stat و ماکروهای S_ISREG، S_ISDIR و S_ISLNK می‌توانید نوع فایل را تشخیص داده و همچنین بیت‌های مجوز S_IRUSR, S_IWUSR, S_IXUSR و معادل‌های گروه/دیگران را به صورت رشته rwx چاپ کنید. اگر هدف تشخیص دقیق لینک نمادین است، از lstat به جای stat استفاده کنید تا نوع لینک را بدست آورید. در نهایت برای چاپPerms به شرط‌های بیتی متکی شوید تا خروجی مانند "type: directory, perms: rwxr-xr--" تولید شود.

گزارش

1 پاسخ

جدید ترین قدیمی ترین بالاترین امتیاز پاسخ های من

در حال بارگیری...
ورود به حساب کاربری