SORU
23 EKİM 2008, PERŞEMBE


Ne'in bir dosya C varsa? kontrol etmek için en iyi yol (çapraz platform)

Sadece dosyayı açmaya çalışırken daha iyi bir yolu var mı?

int exists(const char *fname)
{
    FILE *file;
    if (file = fopen(fname, "r"))
    {
        fclose(file);
        return 1;
    }
    return 0;
}

CEVAP
23 EKİM 2008, PERŞEMBE


access() işlevi, unistd.h bulunan Yukarı Bak. Eğer işlevi ile değiştirebilirsiniz

if( access( fname, F_OK ) != -1 ) {
    // file exists
} else {
    // file doesn't exist
}

Ayrıca R_OK, W_OK X_OK yer F_OK Kontrol için okuma izni, yazma izni ve çalıştırma izni (sırasıyla) yerine, birlikte yaşama, YA da birlikte (yani kontrol için hem de okumaveyazma izni R_OK|W_OK kullanarak)

GüncellemeWindows, erişim fonksiyonu dikkate DACL almaz beri W_OK güvenilir yazma izni için test etmek için kullanabilirsiniz unutmayın. access( fname, W_OK ) dosyayı salt okunur özniteliği yoktur, çünkü 0 (başarı) döndürebilir, ama yine de dosyaya yazma izni olmayabilir.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • campos9896

    campos9896

    24 Mart 2012
  • HBO

    HBO

    17 Mayıs 2006
  • RomanAtwood

    RomanAtwood

    18 Kasım 2009