Welcome!

By registering with us, you'll be able to discuss, share and private message with other members of our community.

SignUp Now!

Tmp files from in-process pipes not deleted

May
12,834
163
The PIPExxx.tmp files created by an in-process pipe are not deleted, not even when TCC exits.
 
I looked more closely at this. Each time I use "tasklistr |! egrep | sort" (twice, below. one in-process pipe, one normal pipe) I get a new PIP*.tmp file. Below that, when both pipes are in-process, I don't get a new PIP*.tmp file. "t:\" is %TEMP and d = *dir /a /p /m /k /h /ne.
Code:
v:\> d t:\pip*

v:\> tasklist |! egrep -v "svchost" | d:\gnu\sort -k2 -f > nul

v:\> d t:\pip*
2019-09-28  13:13           2,868  PIPD77.tmp

v:\> tasklist |! egrep -v "svchost" | d:\gnu\sort -k2 -f > nul

v:\> d t:\pip*
2019-09-28  13:14           2,868  PIP29AB.tmp
2019-09-28  13:13           2,868  PIPD77.tmp

v:\> tasklist |! egrep -v "svchost" |! d:\gnu\sort -k2 -f > nul

v:\> d t:\pip*
2019-09-28  13:14           2,868  PIP29AB.tmp
2019-09-28  13:13           2,868  PIPD77.tmp

v:\>
 
Here's the same experiment (as in my last post) with only TCC and Windows built-ins.

Code:
v:\> tasklist |! findstr foo | sort > nul

v:\> d t:\pip*
2019-09-28  13:22           2,665  PIP90A3.tmp

v:\> tasklist |! findstr foo | sort > nul

v:\> d t:\pip*
2019-09-28  13:22           2,665  PIP90A3.tmp
2019-09-28  13:22           2,665  PIPD435.tmp

v:\> tasklist |! findstr foo |! sort > nul

v:\> d t:\pip*
2019-09-28  13:22           2,665  PIP90A3.tmp
2019-09-28  13:22           2,665  PIPD435.tmp

v:\>
 
I looked more closely at this. Each time I use "tasklistr |! egrep | sort" (twice, below. one in-process pipe, one normal pipe) I get a new PIP*.tmp file. Below that, when both pipes are in-process, I don't get a new PIP*.tmp file. "t:\" is %TEMP and d = *dir /a /p /m /k /h /ne.
Code:
v:\> d t:\pip*

v:\> tasklist |! egrep -v "svchost" | d:\gnu\sort -k2 -f > nul

v:\> d t:\pip*
2019-09-28  13:13           2,868  PIPD77.tmp

v:\> tasklist |! egrep -v "svchost" | d:\gnu\sort -k2 -f > nul

v:\> d t:\pip*
2019-09-28  13:14           2,868  PIP29AB.tmp
2019-09-28  13:13           2,868  PIPD77.tmp

v:\> tasklist |! egrep -v "svchost" |! d:\gnu\sort -k2 -f > nul

v:\> d t:\pip*
2019-09-28  13:14           2,868  PIP29AB.tmp
2019-09-28  13:13           2,868  PIPD77.tmp

v:\>

What is your D alias equal to?
 
Same response as when you reported this several years ago: TCC does (try to) delete the temporary pipe file, but Windows blocks it because your child process is still reading it.

In process pipes were a kludge for users who were having trouble adapting to real pipes (20 years ago). They are hopelessly obsolete, and I do not intend to expend any effort enhancing them now.

p.s.: All they're doing is an output redirection followed by an input redirection.
 
In process pipes were a kludge for users who were having trouble adapting to real pipes (20 years ago). They are hopelessly obsolete, and I do not intend to expend any effort enhancing them now.

p.s.: All they're doing is an output redirection followed by an input redirection.
I'm guessing that the in-process pipe code was largely ported from 4DOS....
 

Similar threads

Back
Top