Tcl_Access(3) Tcl Library Procedures Tcl_Access(3)
Tcl_Access, Tcl_Stat - check file permissions and other attributes
char *path (in) Native name of the file to check the attributes of.
int mode (in) Mask consisting of one or more of R_OK, W_OK, X_OK and
F_OK. R_OK, W_OK and X_OK request checking whether the
file exists and has read, write and execute permis-
sions, respectively. F_OK just requests checking for
the existence of the file.
struct stat *statPtr (out) The structure that contains the result.
As of Tcl 8.4, the object-based APIs Tcl_FSAccess and Tcl_FSStat should be used in prefer-
ence to Tcl_Access and Tcl_Stat, wherever possible.
There are two reasons for calling Tcl_Access and Tcl_Stat rather than calling system level
functions access and stat directly. First, the Windows implementation of both functions
fixes some bugs in the system level calls. Second, both Tcl_Access and Tcl_Stat (as well
as Tcl_OpenFileChannelProc) hook into a linked list of functions. This allows the possi-
bility to reroute file access to alternative media or access methods.
Tcl_Access checks whether the process would be allowed to read, write or test for exis-
tence of the file (or other file system object) whose name is pathname. If pathname is a
symbolic link on Unix, then permissions of the file referred by this symbolic link are
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
Tcl_Stat 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 in the path leading to the file. The stat structure
includes info regarding 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, Tcl_Stat returns 0 and the stat structure is filled with data. Otherwise,
-1 is returned, and no stat info is given.
Tcl 8.1 Tcl_Access(3)