İzinleri denetlemenin taşınabilir yolu, dosyayı açıp başarılı olup olmadığını kontrol etmektir. . Aksi takdirde, errno
(başlığındaki <cerrno>
den sonra yeterli izinlere yoktu [tek S ile, evet] değerine EACCES
ayarlandığında Bu Unix/Linux ve Windows hem çalışması gerekir Örnek stdio için:.
FILE *fp = fopen("results.txt", "w");
if (fp == NULL) {
if (errno == EACCES)
cerr << "Permission denied" << endl;
else
cerr << "Something went wrong: " << strerror(errno) << endl;
}
Iostreams AFAIK, ikisi de platformlarda errno
ayarlayabilir ya da yalnızca "başarısızlık" yerine daha özel hataları bildirmek için garanti etmiyoruz. biraz farklı çalışır. Jerry Tabut yazdığı gibi
, ayrı erişim güvenmeyin Programınız test programından beri yarışa eğilimli olacak koşullar ve güvenlik delikleri.
Teşekkürler, ancak diske dosya yazma iznim olup olmadığını nasıl bilebilirim? – Aviadjo
Eğer denemeye izinliyim ve programım varsa, programın çökeceğini ve daha önce kontrol ederek bunu önlemek istiyorum. diske yazma izinlerini kontrol etmek için herhangi bir komut var mı (yeni bir dosya yazıyor)? – Aviadjo
Programınız neden çökmelidir? : S –