summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorhershey <hershey>1999-04-17 01:36:32 (GMT)
committerhershey <hershey>1999-04-17 01:36:32 (GMT)
commitd5a79b1be37f6608565d5c80148dce0adf8aee09 (patch)
treeab938cf3f5421bf1f0e268d982db9d4f62ca2fd0
parent099c93d0b49e614cfeffec26211d60d95235e2bf (diff)
downloadtcl-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.364
-rw-r--r--generic/tclUtil.c6
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);
}