Provided by: tcl8.6-doc_8.6.8+dfsg-3_all bug


       Tcl_Access, Tcl_Stat - check file permissions and other attributes


       #include <tcl.h>

       Tcl_Access(path, mode)

       Tcl_Stat(path, statPtr)


       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 a  check
                                          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
       preference to Tcl_Access and Tcl_Stat, wherever possible.  Those  functions  also  support
       Tcl's virtual filesystem layer, which these do not.

       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
       possibility 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  path.  If  path  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.


       stat, access


       Tcl_FSAccess(3tcl), Tcl_FSStat(3tcl)