با استفاده از تابع 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 توصیه میشود.
1 پاسخ
جدید ترین قدیمی ترین بالاترین امتیاز پاسخ های من
در حال بارگیری...
برای ارسال پاسخ باید با حساب کاربری وارد شوید.
ورود به حساب کاربری
استفاده از tmpnam برای تولید نام فایل موقت خطرناک است زیرا امکان وقوع race condition وجود دارد و پیش از باز شدن فایل توسط شما ممکن است نام اشغال شود. بهجای آن از mkstemp یا tmpfile استفاده کنید تا هم نام و هم فایل بهطور امن و اتمیک ایجاد شوند. حتماً مقدار بازگشتی توابع را چک کنید و در پایان فایل را با fclose و remove حذف کنید.
گزارش