_access_s, _waccess_s
Dosya okuma/yazma izinleri belirler. Bu sürümü, _access, _waccess açıklandığı gibi güvenlik geliştirmeleri ile crt 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
Belirtilen mod dosya 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. Dosyanın izin ayarları, 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 ve _sys_nerr.
Notlar
Dosyaları ile birlikte kullanıldığında _access_s işlevi, belirtilen dosya var ve olarak erişilebilir olup olmadığını belirler değeri tarafından belirtilen mode. Dizinler ile kullanıldığında _access_s yalnızca belirtilen dizin var olup olmadığını belirler. De Windows 2000 ve sonrasına, tüm dizinleri okuma ve yazma erişimi.
mod değeri |
Denetim dosyası için |
---|---|
00 |
Yalnızca varlığı. |
02 |
Yazma izni. |
04 |
Okuma izni. |
06 |
Okuma ve yazma izni. |
Okuma veya dosya yazma izni dosya açma olanağı sağlamak yeterli değil. Dosya başka bir işlem tarafından kilitli değilse, onu bile erişilemeyebilir _access_s 0 döndürür.
_waccess_sgeniş karakter sürümü _access_s, burada path bağımsız değişkeni _waccess_s bir geniş karakter dizesidir. Aksi halde, _waccess_s ve _access_s aynı şekilde davranır.
Bu işlevler, kendi parametreleri doğrulayın. path Olan NULL veya mode geçerli bir moda belirtmiyor geçersiz parametre işleyicisi, açıklandığı şekilde çağrılır Parametre doğrulama. Yürütülmesine devam etmek için izin verilmişse, bu işlevler kümesi errno için EINVAL ve EINVAL.
Genel metin yordamı eşlemeleri
Tchar.h yordamına girildi |
_UNICODE ve _mbcs tanımlı değil |
Tanımlanan _mbcs |
Tanımlanan _UNICODE |
---|---|---|---|
_taccess_s |
_access_s |
_access_s |
_waccess_s |
Gereksinimler
Yordamı |
Gerekli başlık |
İsteğe bağlı bir üstbilgi |
---|---|---|
_access_s |
<io.h> |
<errno.h> |
_waccess_s |
<wchar.h> veya <io.h> |
<errno.h> |
Örnek
Bu örnek _access_s var olup ve yazma 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