NAME
TclAccess, TclStat - check file permissions and other attributes
SYNOPSIS
##iinncclluuddee <
int TTccllAAcccceessss(path, mode) int TTccllSSttaatt(path, statPtr) AARRGGUUMMEENNTTSS char *path (in) Native name of the file to check the attributes of. int mode (in) Mask consisting of one or more of ROK, WOK, XOK and FOK. ROK, WOK and XOK request checking whether the file exists and has> read, write and execute permis-
sions, respectively. FOK just requests checking for the existence of the file. struct stat *statPtr (out) The structure that contains the result.DESCRIPTION
As of Tcl 8.4, the object-based APIs TTccllFFSSAAcccceessss and TTccllFFSSSSttaatt should
be used in preference to TTccllAAcccceessss and TTccllSSttaatt, wherever possible. There are two reasons for calling TTccllAAcccceessss and TTccllSSttaatt rather than calling system level functions aacccceessss and ssttaatt directly. First, the Windows implementation of both functions fixes some bugs in the system level calls. Second, both TTccllAAcccceessss and TTccllSSttaatt (as well as TTccllOOppeennFFiilleeCChhaannnneellPPrroocc) hook into a linked list of functions. This allows the possibility to reroute file access to alternative media or access methods. TTccllAAcccceessss checks whether the process would be allowed to read, write or test for existence of the file (or other file system object) whosename is pathname. If pathname is a symbolic link on Unix, then per-
missions of the file referred by this symbolic link are tested. On success (all requested permissions granted), zero is returned. On error (at least one bit in mode asked for a permission that is denied,or some other error occurred), -1 is returned.
TTccllSSttaatt fills the stat structure statPtr with information about the specified file. You do not need any access rights to the file to get this information but you need search rights to all directories named inthe path leading to the file. The stat structure includes info regard-
ing device, inode (always 0 on Windows), privilege mode, nlink (always 1 on Windows), user id (always 0 on Windows), group id (always 0 on Windows), rdev (same as device on Windows), size, last access time, last modification time, and creation time. If path exists, TTccllSSttaatt returns 0 and the stat structure is filledwith data. Otherwise, -1 is returned, and no stat info is given.
KKEEYYWWOORRDDSS stat, access Tcl 8.1 TclAccess(3)