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

6.0 بازدید آخرین ویرایش در 201 روز قبل ساعت 03:33

0.0

برای حل این سوال از زبان C و هدر stdio.h استفاده کنید؛ با فراخوانی tmpnam با یک بافر مناسب (مثلاً char name[L_tmpnam]) یک نام فایل موقت دریافت کنید، سپس با fopen آن را با حالت "w+" باز کنید، با fprintf یا fputs متن بنویسید، با rewind یا fseek به ابتدای فایل برگردید و با fgets یا fread محتوا را بخوانید، در نهایت با fclose فایل را ببندید و با remove آن را حذف کنید. حتماً مقدار بازگشتی توابع را بررسی کنید و خطاها را مدیریت کنید؛ یادآوری اینکه tmpnam ممکن است مشکلات امنیتی (race condition) داشته باشد و در پروژه‌های واقعی استفاده از توابع امن‌تر مانند tmpfile یا mkstemp توصیه می‌شود.

توسط پژوهشگر در 201 روز قبل ساعت 03:33
دسته بندی ها: C for beginner
sara در 201 روز قبل ساعت 06:04

استفاده از tmpnam برای تولید نام فایل موقت خطرناک است زیرا امکان وقوع race condition وجود دارد و پیش از باز شدن فایل توسط شما ممکن است نام اشغال شود. به‌جای آن از mkstemp یا tmpfile استفاده کنید تا هم نام و هم فایل به‌طور امن و اتمیک ایجاد شوند. حتماً مقدار بازگشتی توابع را چک کنید و در پایان فایل را با fclose و remove حذف کنید.

گزارش

1 پاسخ

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

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