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

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

    Copyright © 1996-1997 Sun Microsystems, Inc.
    Copyright © 1995-1997 Roger E. Critchlow Jr.