EnterFile
_________________________________________________________________
NAME
Tcl_EnterFile, Tcl_GetOpenFile, Tcl_FilePermissions -
manipulate the table of open files
SYNOPSIS
#include <tcl.h>
Tcl_EnterFile(interp, file, permissions)
int
Tcl_GetOpenFile(interp, string, write, checkUsage, filePtr)
int
Tcl_FilePermissions(file)
ARGUMENTS
Tcl_Interp *interp (in) Tcl interpreter from
which file is to be
accessed.
FILE *file (in) Handle for file that is
to become accessible in
interp.
int permissions (in) OR-ed combination of
TCL_FILE_READABLE and
TCL_FILE_WRITABLE;
indicates whether file
was opened for reading
or writing or both.
char *string (in) String identifying file,
such as stdin or file4.
int write (in) Non-zero means the file
will be used for
writing, zero means it
will be used for
reading.
int checkUsage (in) If non-zero, then an
error will be generated
if the file wasn't
opened for the access
indicated by write.
FILE **filePtr (out) Points to word in which
to store pointer to FILE
structure for the file
given by string.
_________________________________________________________________
DESCRIPTION
These procedures provide access to Tcl's file naming
mechanism. Tcl_EnterFile enters an open file into Tcl's
file table so that it can be accessed using Tcl commands
like gets, puts, seek, and close. It returns in interp-
>result an identifier such as file4 that can be used to
refer to the file in subsequent Tcl commands. Tcl_EnterFile
is typically used to implement new Tcl commands that open
sockets, pipes, or other kinds of files not already
supported by the built-in commands.
Tcl_GetOpenFile takes as argument a file identifier of the
form returned by the open command or Tcl_EnterFile and
returns at *filePtr a pointer to the FILE structure for the
file. The write argument indicates whether the FILE pointer
will be used for reading or writing. In some cases, such as
a file that connects to a pipeline of subprocesses,
different FILE pointers will be returned for reading and
writing. Tcl_GetOpenFile normally returns TCL_OK. If an
error occurs in Tcl_GetOpenFile (e.g. string didn't make any
sense or checkUsage was set and the file wasn't opened for
the access specified by write) then TCL_ERROR is returned
and interp->result will contain an error message. If
checkUsage is zero and the file wasn't opened for the access
specified by write, then the FILE pointer returned at
*filePtr may not correspond to write.
Tcl_FilePermissions returns an OR-ed combination of the mask
bits TCL_FILE_READABLE and TCL_FILE_WRITABLE; these indicate
whether the given file was opened for reading or writing or
both. If file does not refer to a file in Tcl's file table
then -1 is returned.
KEYWORDS
file table, permissions, pipeline, read, write