Da lista de discussão comp.lang.tcl :
For stderr, exec creates a tempfile into which all the (putative) stderr-output goes, and which is read back afterwards.
Sugiro seguir o resto das informações nessa postagem. Por exemplo, você tem um arquivo .tclsh
? O que está sendo executado?
strace tclsh
deve fornecer informações suficientes para determinar onde o tcl está tentando e não criar um arquivo temporário.