bug in vfork semantics under IRIX 3.3.1

Paul Eggert eggert at twinsun.com
Fri Nov 30 15:13:07 AEST 1990


chk%alias at csri.toronto.edu (C. Harald Koch) writes:

	Under IRIX, the vfork() call is actually implemented using sproc(),
	which is a more primitive way to get multiple processes.  It DOES NOT
	give you a separate u-area.  So the setgid() call affects the parent!
	...  I strongly suggest not using it at all....

I second this suggestion.  Under IRIX 3.3, vfork() also botches file
descriptors: e.g. if a vfork() child process closes a file, IRIX mistakenly
closes the corresponding file descriptor in the parent.  I ran into this
problem porting RCS 5.4 to SGI.

I couldn't find any SGI documentation for vfork(),
so I suspect it's both undocumented and unsupported.
Even so, surely it is unwise for SGI to supply such a nonstandard vfork(),
because too many people will run into similar problems.



More information about the Comp.sys.sgi mailing list