Go to main content

man pages section 3: Extended Library Functions, Volume 1

Exit Print View

Updated: Wednesday, July 27, 2022
 
 

Tcl_Access (3tcl)

Name

Tcl_Access - check file permissions and other attributes

Synopsis

#include <tcl.h>

int
Tcl_Access(path, mode)

int
Tcl_Stat(path, statPtr)

Description

Tcl_Access(3tcl)            Tcl Library Procedures            Tcl_Access(3tcl)



______________________________________________________________________________

NAME
       Tcl_Access, Tcl_Stat - check file permissions and other attributes

SYNOPSIS
       #include <tcl.h>

       int
       Tcl_Access(path, mode)

       int
       Tcl_Stat(path, statPtr)

ARGUMENTS
       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.
______________________________________________________________________________

DESCRIPTION
       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.

   OBSOLETE FUNCTIONS
       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_Open-
       FileChannelProc) hook into a linked list of functions. This allows  the
       possibility to reroute file access to alternative media or access meth-
       ods.

       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 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.

       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  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, Tcl_Stat returns 0 and the  stat  structure  is  filled
       with data. Otherwise, -1 is returned, and no stat info is given.

KEYWORDS
       stat, access


ATTRIBUTES
       See attributes(7) for descriptions of the following attributes:


       +---------------+------------------+
       |ATTRIBUTE TYPE | ATTRIBUTE VALUE  |
       +---------------+------------------+
       |Availability   | runtime/tcl-8    |
       +---------------+------------------+
       |Stability      | Uncommitted      |
       +---------------+------------------+

SEE ALSO
       Tcl_FSAccess(3), Tcl_FSStat(3)



NOTES
       Source  code  for open source software components in Oracle Solaris can
       be found at https://www.oracle.com/downloads/opensource/solaris-source-
       code-downloads.html.

       This     software     was    built    from    source    available    at
       https://github.com/oracle/solaris-userland.   The  original   community
       source was downloaded from  http://prdownloads.sourceforge.net/tcl/tcl-
       core8.6.7-src.tar.gz.

       Further information about this software can be found on the open source
       community website at https://www.tcl.tk/.



Tcl                                   8.1                     Tcl_Access(3tcl)