_access
, , _waccess
t_access
Určuje, jestli je soubor jen pro čtení nebo ne. K dispozici jsou bezpečnější verze; viz _access_s
, _waccess_s
.
Viz _taccess
mapování obecných textových funkcí.
Syntaxe
int _access(
const char *path,
int mode
);
int _waccess(
const wchar_t *path,
int mode
);
Parametry
path
Cesta k souboru nebo adresáři
mode
Atribut pro čtení a zápis
Vrácená hodnota
Každá funkce vrátí hodnotu 0, pokud má soubor daný režim. Funkce vrátí hodnotu -1, pokud pojmenovaný soubor neexistuje nebo nemá daný režim; v tomto případě je nastavena tak, errno
jak je znázorněno v následující tabulce.
Hodnota | Popis |
---|---|
EACCES |
Přístup byl odepřen: Nastavení oprávnění souboru neumožňuje zadaný přístup. |
ENOENT |
Název souboru nebo cesta nebyly nalezeny. |
EINVAL |
Neplatný parametr. |
Další informace o těchto a dalších návratových kódech naleznete v tématu , , , a_sys_nerr
. _sys_errlist
_doserrno
errno
Poznámky
Při použití se soubory funkce určuje, _access
zda zadaný soubor nebo adresář existuje a má atributy určené hodnotou mode
. Při použití s adresáři určuje pouze to, _access
zda zadaný adresář existuje. V operačních systémech Windows 2000 a novějších mají všechny adresáře přístup pro čtení a zápis.
mode hodnota |
Zkontroluje, jestli soubor není |
---|---|
00 | Pouze existence |
02 | Jen pro zápis |
04 | Jen pro čtení |
06 | Čtení a zápis |
Tato funkce kontroluje, jestli jsou soubor a adresář jen pro čtení, nebo ne, nekontroluje nastavení zabezpečení systému souborů. K tomu potřebujete přístupový token. Další informace o zabezpečení systému souborů najdete v tématu Přístupové tokeny. Třída ATL existuje k poskytování této funkce; viz CAccessToken
třída.
_waccess
je verze širokého znaku _access
path
; argument je _waccess
řetězec širokého znaku. _waccess
a _access
chovat se stejně jinak.
Tato funkce ověří své parametry. Pokud path
je NULL
nebo mode
neurčí platný režim, vyvolá se neplatná obslužná rutina parametru, jak je popsáno v ověření parametru. Pokud je spuštění povoleno pokračovat, funkce nastaví errno
EINVAL
hodnotu -1 a vrátí hodnotu -1.
Ve výchozím nastavení je globální stav této funkce vymezen na aplikaci. Chcete-li toto chování změnit, přečtěte si téma Globální stav v CRT.
Mapování obecných textových funkcí
Tchar.h rutina |
_UNICODE a _MBCS není definován |
_MBCS definovaný |
_UNICODE definovaný |
---|---|---|---|
_taccess |
_access |
_access |
_waccess |
Požadavky
Rutina | Požadovaný hlavičkový soubor | Volitelná záhlaví |
---|---|---|
_access |
<io.h> |
<errno.h> |
_waccess |
<wchar.h> nebo <io.h> |
<errno.h> |
Příklad
Následující příklad používá _access
ke kontrole souboru s názvem crt_ACCESS.C
zjistit, zda existuje a zda je zápis povolený.
// crt_access.c
// compile with: /W1
// This example uses _access to check the file named
// crt_ACCESS.C to see if it exists and if writing is allowed.
#include <io.h>
#include <stdio.h>
#include <stdlib.h>
int main( void )
{
// Check for existence.
if( (_access( "crt_ACCESS.C", 0 )) != -1 )
{
printf_s( "File crt_ACCESS.C exists.\n" );
// Check for write permission.
// Assume file is read-only.
if( (_access( "crt_ACCESS.C", 2 )) == -1 )
printf_s( "File crt_ACCESS.C does not have write permission.\n" );
}
}
File crt_ACCESS.C exists.
File crt_ACCESS.C does not have write permission.
Viz také
Zpracování souborů
_chmod
, _wchmod
_fstat
, _fstat32
, _fstat64
, _fstati64
, , _fstat32i64
_fstat64i32
_open
, _wopen
_stat
, _wstat
funkce