Provided by: tcl8.4-doc_8.4.20-8_all bug

NAME

       Tcl_GetOpenFile - Get a standard IO File * handle from a channel. (Unix only)

SYNOPSIS

       #include <tcl.h>

       int
       Tcl_GetOpenFile(interp, string, write, checkUsage, filePtr)

ARGUMENTS

       Tcl_Interp   *interp      (in)      Tcl  interpreter  from  which  file  handle  is  to be
                                           obtained.

       CONST char   *string      (in)      String identifying channel, 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.

       ClientData   *filePtr     (out)     Points to word in  which  to  store  pointer  to  FILE
                                           structure for the file given by string.
_________________________________________________________________

DESCRIPTION

       Tcl_GetOpenFile  takes  as  argument  a  file  identifier of the form returned by the open
       command 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 channel 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 the interpreter's result will contain an error message.  In  the
       current implementation checkUsage is ignored and consistency checks are always performed.  │

       Note that this interface is only supported on the Unix platform.

KEYWORDS

       channel, file handle, permissions, pipeline, read, write