pid(n) Tcl Built-In Commands pid(n)

```

```

# [NAME](#NAME)

pid - Retrieve process identifiers

# [SYNOPSIS](#SYNOPSIS)

**pid** ?*fileId*?

```

```

# [DESCRIPTION](#DESCRIPTION)

If the *fileId* argument is given then it should normally refer to a process pipeline created with the **open** command. In this case the **pid** command will return a list whose elements are the process identifiers of all the processes in the pipeline, in order. The list will be empty if *fileId* refers to an open file that is not a process pipeline. If no *fileId* argument is given then **pid** returns the process identifier of the current process. All process identifiers are returned as decimal strings.

# [EXAMPLE](#EXAMPLE)

Print process information about the processes in a pipeline using the SysV **ps** program before reading the output of that pipeline:

```
set pipeline [open "| zcat somefile.gz | grep foobar | sort -u"]
# Print process information
exec ps -fp [pid $pipeline] >@stdout
# Print a separator and then the output of the pipeline
puts [string repeat - 70]
puts [read $pipeline]
close $pipeline
```

# [SEE ALSO](#SEE_ALSO)

[exec(n)](/man/os/tcl/exec.n), [open(n)](/man/os/tcl/open.n)

# [KEYWORDS](#KEYWORDS)

file, pipeline, process identifier

7.0 Tcl

---

Document: pid(n) 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
