_access_s, _waccess_s
Dosya okuma/yazma izinleri belirler.Bu bir sürümüdür _access, _waccess 'de açıklanan güvenlik yenilikleri ile CRT'deki Güvenlik Özellikleri.
errno_t _access_s(
const char *path,
int mode
);
errno_t _waccess_s(
const wchar_t *path,
int mode
);
Parametreler
path
Dosya veya dizin yolu.mode
İzin ayarı.
Dönüş Değeri
Dosyaya verilen modu varsa her işlevi 0 değerini döndürür.Adlandırılmış dosya yok veya belirtilen modda erişilebilir değil işlevi bir hata kodu döndürür.Bu durumda, işlev kümesinden aşağıdaki gibi bir hata kodu verir ve ayrıca ayarlar errno için aynı değeri.
EACCES
Erişim engellendi.Dosya izni ayarı, belirtilen erişim izin vermez.ENOENT
Dosya adı veya yolu bulunamadı.EINVAL
Geçersiz parametre.
Daha fazla bilgi için bkz. errno, _doserrno, _sys_errlist, and _sys_nerr.
Notlar
Dosyaları ile kullanıldığında _access_s işlevi, belirtilen dosya var ve olarak erişilebilir olup olmadığını belirler değeri tarafından belirtilen mode.Dizinleri ile kullanıldığında _access_s yalnızca belirtilen dizini olup olmadığını gösterir.İçinde Windows 2000 ve daha sonra tüm dizinleri okuma ve yazma erişimi.
mod değeri |
Denetim dosyası için |
---|---|
00 |
Sadece varlığı. |
02 |
Yazma izni. |
04 |
Okuma izni. |
06 |
Okuma ve yazma izni. |
Okuma veya dosyaya yazma izni bir dosyanın açılmasını sağlamak yeterli değildir.Bir dosyayı başka bir işlem tarafından kilitli ise örneğin, onu olmasa da erişilebilir olmayan _access_s 0 değerini döndürür.
_waccess_sbir geniş karakter sürümü _access_s, nerede path bağımsız değişkeni _waccess_s bir geniş karakter dizesidir.Aksi takdirde, _waccess_s ve _access_s aynı şekilde davranır.
Bu işlevler, kendi parametrelerini doğrular.Yoksa path olan NULL veya mode geçerli bir moda belirtmiyor açıklandığı gibi geçersiz bir parametre işleyici çağrılır Parametre Doğrulama.Yürütmenin devam etmesine izin verilirse, bu işlevler errno öğesini EINVAL olarak ayarlar ve EINVAL döndürür.
Genel Metin Yordam Eşleşmeleri
Tchar.h yordamı |
_UNICODE ve _MBCS tanımlanmaz |
_MBCS tanımlanmış |
_UNICODE tanımlanmış |
---|---|---|---|
_taccess_s |
_access_s |
_access_s |
_waccess_s |
Gereksinimler
Yordam |
Gerekli başlık |
İsteğe bağlı üst bilgi |
---|---|---|
_access_s |
<io.h> |
<errno.h> |
_waccess_s |
<wchar.h> veya <io.h> |
<errno.h> |
Örnek
Bu örnek kullanır _access_s var olup ve yazmaya izin verilip verilmeyeceğini görmek için crt_access_s.c adlı dosyayı denetlemek için.
// crt_access_s.c
#include <io.h>
#include <stdio.h>
#include <stdlib.h>
int main( void )
{
errno_t err = 0;
// Check for existence.
if ((err = _access_s( "crt_access_s.c", 0 )) == 0 )
{
printf_s( "File crt_access_s.c exists.\n" );
// Check for write permission.
if ((err = _access_s( "crt_access_s.c", 2 )) == 0 )
{
printf_s( "File crt_access_s.c does have "
"write permission.\n" );
}
else
{
printf_s( "File crt_access_s.c does not have "
"write permission.\n" );
}
}
else
{
printf_s( "File crt_access_s.c does not exist.\n" );
}
}
.NET Framework Eşdeğeri
Ayrıca bkz.
Başvuru
_fstat, _fstat32, _fstat64, _fstati64, _fstat32i64, _fstat64i32