Apakah ada cara yang lebih baik daripada sekadar mencoba membuka file?
int exists(const char *fname)
{
FILE *file;
if ((file = fopen(fname, "r")))
{
fclose(file);
return 1;
}
return 0;
}
fopen()/ fclose()adalah bahwa Anda mungkin tidak dapat membuka file untuk dibaca meskipun sudah ada. Misalnya, /dev/kmemada, tetapi sebagian besar proses tidak dapat membukanya bahkan untuk membaca. /etc/shadowadalah file lain seperti itu. Tentu saja, keduanya stat()dan access()bergantung pada dapat mengakses direktori yang berisi file; semua taruhan dibatalkan jika Anda tidak bisa melakukan itu (tidak ada izin eksekusi pada direktori yang berisi file).
if (file = fopen(fname, "r"))akan memberi peringatan. Gunakan tanda kurung di sekitar pernyataan di dalam pernyataan ifif ((file = fopen(fname, "r")))