diff options
author | hershey <hershey> | 1999-04-17 01:36:32 (GMT) |
---|---|---|
committer | hershey <hershey> | 1999-04-17 01:36:32 (GMT) |
commit | d5a79b1be37f6608565d5c80148dce0adf8aee09 (patch) | |
tree | ab938cf3f5421bf1f0e268d982db9d4f62ca2fd0 | |
parent | 099c93d0b49e614cfeffec26211d60d95235e2bf (diff) | |
download | tcl-d5a79b1be37f6608565d5c80148dce0adf8aee09.zip tcl-d5a79b1be37f6608565d5c80148dce0adf8aee09.tar.gz tcl-d5a79b1be37f6608565d5c80148dce0adf8aee09.tar.bz2 |
added first draft of documentation for Tcl_Access and Tcl_Stat.
defined Tcl_Stat and Tcl_Access to call TclStat and TclAccess instead of
TclpStat and TclpAccess.
-rw-r--r-- | doc/Access.3 | 64 | ||||
-rw-r--r-- | generic/tclUtil.c | 6 |
2 files changed, 67 insertions, 3 deletions
diff --git a/doc/Access.3 b/doc/Access.3 new file mode 100644 index 0000000..a561e3e --- /dev/null +++ b/doc/Access.3 @@ -0,0 +1,64 @@ +'\" +'\" Copyright (c) 1998-1999 Scriptics Corportation +'\" +'\" See the file "license.terms" for information on usage and redistribution +'\" of this file, and for a DISCLAIMER OF ALL WARRANTIES. +'\" +'\" RCS: @(#) $Id: Access.3,v 1.1 1999/04/17 01:36:32 hershey Exp $ +'\" +.so man.macros +.TH Tcl_Access 3 8.1 Tcl "Tcl Library Procedures" +.BS +.SH NAME +Tcl_Access, Tcl_Stat \- check file permissions and other attributes +.SH SYNOPSIS +.nf +\fB#include <tcl.h>\fR +.sp +int +\fBTcl_Access\fR(\fpath\fR, \fImode\fR) +.sp +int +\fBTcl_Stat\fR(\fIpath\fR, \fIbufPtr\fR) +.SH ARGUMENTS +.AS struct stat *bufPtr +.AP CONST char *path in +Native name of the file to check the attributes of. +.AP 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. +.AP struct stat *bufPtr out +The structure that contains the result. +.BE + +.SH DESCRIPTION +.PP +There are two reasons for calling \fBTcl_Access\fR and \fBTcl_Stat\fR +rather than calling system level functions \fBaccess\fR and \fBstat\fR +directly. First, the Windows implementation of both functions fixes +some bugs in the system level calls. Second, both \fBTcl_Access\fR +and \fBTcl_Stat\fR (as well as \fBTcl_OpenFileChannelProc\fR) hook +into a linked list of functions, the first of which checks for the +existence of \fBpath\fR in a Zip file rather than on disc. The +hooking behavior is necessary for applications wrapped with TclPro +Wrapper. +.PP +\fBTcl_Access\fR 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. +.PP +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. +.PP +\fBTcl_Stat\fR returns the stat structure 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. + +.SH KEYWORDS +statc access diff --git a/generic/tclUtil.c b/generic/tclUtil.c index 556977b..dfbdb08 100644 --- a/generic/tclUtil.c +++ b/generic/tclUtil.c @@ -10,7 +10,7 @@ * See the file "license.terms" for information on usage and redistribution * of this file, and for a DISCLAIMER OF ALL WARRANTIES. * - * RCS: @(#) $Id: tclUtil.c,v 1.6 1999/04/17 00:32:32 hershey Exp $ + * RCS: @(#) $Id: tclUtil.c,v 1.7 1999/04/17 01:36:32 hershey Exp $ */ #include "tclInt.h" @@ -2179,7 +2179,7 @@ Tcl_Access(path, mode) CONST char *path; /* Path of file to access (UTF-8). */ int mode; /* Permission setting. */ { - return TclpAccess(path, mode); + return TclAccess(path, mode); } /* @@ -2203,5 +2203,5 @@ Tcl_Stat(path, bufPtr) CONST char *path; /* Path of file to stat (in UTF-8). */ struct stat *bufPtr; /* Filled with results of stat call. */ { - return TclpStat(path, bufPtr); + return TclStat(path, bufPtr); } |