Date: Wed, 24 Apr 1996 00:20:25 GMT From: James Raynard <jraynard@dial.pipex.com> To: bde@zeta.org.au Cc: freebsd-hackers@freebsd.org Subject: Re: Flaws in system() implementation? Message-ID: <199604240020.AAA02030@dial.pipex.com> In-Reply-To: <199604231231.WAA20624@godzilla.zeta.org.au> (message from Bruce Evans on Tue, 23 Apr 1996 22:31:20 %2B1000)
next in thread | previous in thread | raw e-mail | index | archive | help
>>>>> Bruce Evans <bde@zeta.org.au> writes: > > >2. Use of the soon-to-be-obsolescent vfork() instead of fork(). > > Reports of its death seem to be premature :-). I actually meant to type "soon-to-be-obsolete", but maybe what I put is more appropriate. 8-) > More points: > > 5. Use of the crufty signal() and deprecated sigblock() and sigsetmask() > instead of POSIX signal handling interfaces. It isn't clear whether the > sa_mask and sa_flags used by signal() give the correct behaviour. Yes, I thought about this but thought it best to try and avoid too many changes to the original code. Actually I was thinking about a "project" that I can do on 2.1.0-R code (I don't think I can afford the phone bills involved in running -current) and trying to make things like signal-handling in libc more Posix-compliant seems like a good one to start with. Any objections and/or pitfalls if I do this? > 6. Missing EINTR handling for waitpid(). This might be OK if SA_RESTART > was forced, but see point 5 - it is now clear that the sa_flags used by > signal() don't give the correct behaviour if the application has used > siginterrupt() to change the default of SA_RESTART. Hmm, didn't see that one, but now you mention it... > Some of these points also apply to popen/pclose, but the FreeBSD already > seems to be correct although unnecessarily unportable. E.g., it handles > EINTR. Out of interest, why does handling EINTR make it unportable? Cheers James
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199604240020.AAA02030>