Tcl\_GetOpenFile(3) Tcl Library Procedures Tcl\_GetOpenFile(3)

```

```

# [NAME](#NAME)

Tcl\_GetOpenFile - Return a FILE* for a channel registered in the given interpreter (Unix only)

# [SYNOPSIS](#SYNOPSIS)

```
#include <tcl.h>

int
Tcl_GetOpenFile(interp, chanID, write, checkUsage, filePtr)
```

# [ARGUMENTS](#ARGUMENTS)

Tcl\_Interp *\*interp* (in)

Tcl interpreter from which file handle is to be obtained.

const char *\*chanID* (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 was not opened for the access indicated by *write*.

void *\*\*filePtr* (out)

Points to word in which to store pointer to FILE structure for the file given by *chanID*.

```
    
```

# [DESCRIPTION](#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. *chanID* did not make any sense or *checkUsage* was set and the file was not 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](#KEYWORDS)

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

8.0 Tcl

---

Document: Tcl_GetOpenFile(3) from tcl 9.1.0-r0 (Chainguard OS)
Source: https://downloads.sourceforge.net/project/tcl/Tcl/9.1.0/tcl9.1.0-src.tar.gz
