Tcl_Access,  Tcl_Stat  -  check file permissions and other


       #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  checking   for   the
                                   existence of the file.

       stat   *statPtr   (out)     The  structure  that  contains
                                   the result.


       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.


       stat access