Tcl_Access, Tcl_Stat - check file permissions and other
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 permissions,
respectively. F_OK just
requests checking for the
existence of the file.
stat *statPtr (out) The structure that contains
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 func
tions fixes some bugs in the system level calls. Second,
both Tcl_Access and Tcl_Stat (as well as Tcl_OpenFileChan
nelProc) hook into a linked list of functions. This
allows the possibity 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 existence 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 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),
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), priviledge mode,
nlink (always 1 on Windows), user id (always 0 on Win
dows), group id (always 0 on Windows), rdev (same as
device on Windows), size, last access time, last modifica
tion 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.