[net.lang.c] Microsoft 'C' - Problem with Spawns & Open files

cim@pyuxv.UUCP (Bellcore CIM) (05/12/86)

I'm having a  problem using the Microsoft C 3.0 'spawnlp' function
with open files in the calling program. (PCDOS-3.1, IBM PC/XT)

After returning from the spawn, all file pointers (except stdin,stdout etc) are
randomised !
The spawned program does nothing except print 'hello world' & exit.

I've tried:
a)	Using 'system' instead of 'spawn' - no change
b)	'dup'ing the relevent file descriptors before the spawn, and trying 
	to restore them afterwards - no change
c) 	Using 'freopen' to reopen the file as the standard input,
	and then read 'stdin' - no change.

The only work-around I've found so far is to do 'ftell's on the files
before the function, then 'fseek's afterwards - which, to put it mildly,
is a really putrid kludge.

Does anyone have a better fix ? 

Robert Fair.			ihnp4!pyuxv!cim2
Bell Communications Research.
Piscataway NJ

My signature line has given up in disgust & become a COBOL programmer.