---
name: "tstdio"
section: "3"
platform: "linux"
package: "lam2-dev"
version: "6.3.2-3"
release: "Debian 2.2 (Potato)"
platforms: ["linux"]
url: "https://new.carta.tech/tstdio"
---

# tstdio(3)

flexible LAM standard I/O package

## NAME

libtstdio.a - flexible LAM standard I/O package

## SYNOPSIS

```
#include <tstdio.h>
TFILE *tstdin;
TFILE *tstdout;
TFILE *tstderr;
```

## DESCRIPTION

The LAM *libtstdio.a* library of C functions provides networked (remote) services equivalent to those of the [stdio(3)](/stdio/3.md) functions. The *tstdio* library allows the user to designate the target node to/from which output/input is directed. The *tstdio* functions have the same names and interfaces as their counterpart in [stdio(3)](/stdio/3.md), except that the names are prefixed with the letter 't' (tprintf(), tfopen(), tfclose(), etc.). This allows them to coexist with the stdio(3V) functions, giving the user the choice to bypass the LAM I/O functions and access the I/O of the native system.

Files opened using [fopen(3)](/fopen/3.md), [fdopen(3)](/fdopen/3.md), or [freopen(3)](/freopen/3.md) are treated as local to the node of the calling process. To open files on the origin node, from any LAM node, include a 'T' in the type field of the open call. For example:

```
#include <tstdio.h>
tfopen("/tmp/input", "rT");
```

By default, functions using tstdout or tstderr direct  the streams to the LAM origin node (see [getorigin(2)](/getorigin/2.md)) where the user is assumed to be logged in.

## SEE ALSO

[getorigin(2)](/getorigin/2.md)
