Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Path: utzoo!mnetor!seismo!caip!cbmvax!higgin From: higgin@cbmvax.cbm.UUCP (Paul Higginbottom) Newsgroups: net.micro.amiga Subject: Re: Bug in Manx fexec functions? Message-ID: <771@cbmvax.cbmvax.cbm.UUCP> Date: Tue, 23-Sep-86 16:16:03 EDT Article-I.D.: cbmvax.771 Posted: Tue Sep 23 16:16:03 1986 Date-Received: Wed, 24-Sep-86 22:09:35 EDT References: <3393@utcsri.UUCP> Reply-To: higgin@cbmvax.UUCP (Paul Higginbottom) Organization: Commodore Technology, West Chester, PA Lines: 55 Keywords: Manx Aztec fexecv fexecl In article <3393@utcsri.UUCP> gclark@utcsri.UUCP (Graeme Clark) writes: >Has anyone successfully used the functions fexecl() and fexecv() >in the Manx (3.20a) library? Yes! (I use fexecv()) >When I use them, fexecl() gurus whenever >I call it, and fexecv() does so occasionally. Is it me? Might be, might be not. I have gone through the fexec() code with a microscope trying to find out why it blows up SOMETIMES. Here's what I've come up with. SOME AmigaDOS commands (TYPE does this FOR SURE) change the INPUT file handle of the CLI they're attached to. This can be disastrous of course. This caused my no end of grief in a shell I have written. Anyway, I have a feeling that these @#$* BCPL programs for the Amiga do something very weird. Executing other normal C programs has never caused me a problem. 3.20a documentation does warn of future probable incompatibilities with fexec() functions, but in 3.30 (I'm a beta tester) fexec has been fixed up somewhat, but is still not perfect, although my guess is still that BCPL programs are the culprit. >Can anyone tell me the sequence of operations performed by these >functions so I can write my own version? If you don't want to see amazing ugliness, don't look at these routines. I STILL don't understand what a lot of does. >It's not sufficient to >just call Execute(); Not to mention that Execute() loses 56 odd bytes on EVERY call!!!! >...fexec[l|v] allows the child program to be interrupted >with ^C and to inherit the parent's Input() and Output() file handles. >If I had the commercial version of Manx, I'd just look at the source. >However I don't. Of course posting the source for fexecv() would >be a copyright infringement, but I'd think posting a summary of the operations >performed by fexecv() would be OK; after all, you can't copyright algorithms, >right? Sorry, I'm not going to irritate the legal eagles. > >Thanks for any help you can provide. > >Graeme Clark -- Dept. of Computer Science, Univ. of Toronto, Canada M5S 1A4 >{allegra,cornell,decvax,ihnp4,linus,utzoo}!utcsri!gclark Hope I helped a bit. Paul Higginbottom Disclaimer: I do not work for Commodore or Manx, and my opinions are my own.