Get a standard IO File * handle from a channel. (UNIXonly) 

Tcl Library Procedures


#include <tcl.h>

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



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.


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() (for example, 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.


Windows 8.1. Windows Server 2012 R2. Windows 10. Windows Server 2016. Windows Server 2019. Windows 11. Windows Server 2022.


PTC MKS Toolkit for Professional Developers
PTC MKS Toolkit for Enterprise Developers
PTC MKS Toolkit for Enterprise Developers 64-Bit Edition

PTC MKS Toolkit 10.4 Documentation Build 39.