pid − Retrieve process identifiers

pid ?fileId?

     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.

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

     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

exec(n), open(n)

file, pipeline, process identifier