[alt.msdos.programmer] I/O redirection in DOS

fredex@cg-atla.UUCP (Fred Smith) (12/12/89)

Yesterday I posted a plea for help with an I/O redirection problem. Well,
last night I figured out what was the correct way to do it, so if any of you
were planning to reply, I thank you, but it is not necessary now!


Anyhow, for posterity's sake, what I needed to do was temporarily DISABLE
existing redirection of stdin when spawning a child process, and then
reenable the redirection after the child process exited. Here is a sketch
of what I ended up doing, which seems to be just fine:


int old;
FILE *new;

old = dup (fileno (stdin));
new = fopen ("CON", "r");
dup2 (fileno(new), fileno (stdin));

/* stuff here to do the child shell */


dup2(old, fileno(stdin));
fclose (new);


(Of course, I can't claim all the credit--I had a bit of help from Ray Duncan's
book Adavnced MSDOS!!!!!!!!)

Fred Smith