কেবল ফাইলটি খোলার চেষ্টা করার চেয়ে আরও ভাল উপায় কি আছে?
int exists(const char *fname)
{
FILE *file;
if ((file = fopen(fname, "r")))
{
fclose(file);
return 1;
}
return 0;
}
fopen()
/ fclose()
পদ্ধতির সাথে একটি ভুল যা হ'ল এটি উপস্থিত থাকলেও আপনি পড়ার জন্য কোনও ফাইল খুলতে পারবেন না। উদাহরণস্বরূপ, /dev/kmem
বিদ্যমান, তবে বেশিরভাগ প্রক্রিয়া এমনকি এটি পড়ার জন্য খুলতে পারে না। /etc/shadow
এ জাতীয় আর একটি ফাইল। অবশ্যই, উভয় stat()
এবং access()
ফাইল ধারণকারী ডিরেক্টরিতে অ্যাক্সেস করতে সক্ষম হওয়ার উপর নির্ভর করে; আপনি যদি এটি না করতে পারেন তবে সমস্ত বেট বন্ধ রয়েছে (ফাইল ধারণকারী ডিরেক্টরিতে অনুমতি চালানোর অনুমতি নেই)।
if (file = fopen(fname, "r"))
একটি সতর্কতা দেবে। যদি বিবৃতিটির ভিতরে বক্তব্যটির চারপাশে প্রথম বন্ধনী ব্যবহার করুনif ((file = fopen(fname, "r")))