## Tcl8.6.0/Tk8.6.0 Documentation > Tcl Commands, version 8.6.0 > pid

### Tcl/Tk Applications | Tcl Commands | Tk Commands | [incr Tcl] Package Commands | SQLite Package Commands | TDBC Package Commands | tdbc::mysql Package Commands | tdbc::odbc Package Commands | tdbc::postgres Package Commands | tdbc::sqlite3 Package Commands | Thread Package Commands | Tcl C API | Tk C API | [incr Tcl] Package C API | TDBC Package C API

### NAME

pid — Retrieve process identifiers

### SYNOPSIS

pid ?fileId?

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

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

exec, open

### KEYWORDS

file, pipeline, process identifier
Copyright © 1993 The Regents of the University of California. Copyright © 1994-1996 Sun Microsystems, Inc.