با استفاده از تابع tmpnam از هدر stdio.h یک نام فایل موقت تولید کنید، فایلی با آن نام بسازید، یک رشته از ورودی کاربر در آن بنویسید، سپس فایل را بازخوانی کرده و محتوای آن را چاپ کرده و در پایان فایل موقت را حذف کنید.

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

0.0

در برنامه‌ی C هدر stdio.h را شامل کنید و از tmpnam (مثلاً tmpnam(NULL) یا tmpnam(buffer) با اندازهٔ L_tmpnam) برای تولید یک نام فایل موقت استفاده کنید. سپس با fopen نام تولیدشده را باز (با حالت مناسب مثل "w+" یا ابتدا "w" برای نوشتن و سپس "r" برای خواندن) و با fprintf یا fputs متن ورودی را بنویسید، مطمئن شوید داده‌ها flush یا فایل بسته شده‌اند، بعد محتوا را با fgets یا fread بخوانید و چاپ کنید و در نهایت با remove نام فایل را حذف کنید. حتماً مقدار بازگشت توابع را بررسی کنید و برای نکتهٔ امنیتی بدانید tmpnam محدودیت‌هایی دارد (در کاربردهای واقعی امن‌تر است از راهکارهایی مثل mkstemp استفاده شود).

توسط پژوهشگر در 202 روز قبل ساعت 02:20
دسته بندی ها: C for beginner
reyhaneh در 202 روز قبل ساعت 10:05

استفاده از tmpnam برای نام‌گذاری فایل موقت امن نیست زیرا خطر برخورد نام با فایل‌های دیگر و مشکلات هم‌زمانی وجود دارد؛ در کارهای امنیتی بهتر از mkstemp استفاده کنید. در برنامه‌ی آموزشی حتماً مقدار بازگشتی توابع را بررسی کنید و پس از نوشتن با fflush یا fclose، قبل از خواندن دوباره اقدام کنید. همچنین توجه کنید که tmpnam ممکن است ناحیهٔ نامش محدود باشد و باید فضای کافی در بافر با اندازهٔ L_tmpnam فراهم شود. در نهایت فایل موقت را حذف کنید تا فضای دیسک پاک بماند.

گزارش

1 پاسخ

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

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