Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="=====================_894735171==_" To: djgpp-workers AT delorie DOT com From: Nate Eldredge Subject: Re: DJGPP 2.01 spawnvp problem...... Date: Sat, 9 May 1998 10:29:52 -0700 Message-ID: <19980509172947.AAC16984@ppp105.cartsys.com> Precedence: bulk --=====================_894735171==_ Content-Type: text/plain; charset="us-ascii" At 07:42 5/8/1998 GMT, leetonks AT hotmail DOT com wrote: >In article , > Eli Zaretskii wrote: >> >> >> On Thu, 7 May 1998 leetonks AT hotmail DOT com wrote: >> >> Did you remember to make prog the first element of par as well? This is >> by far the most frequent problem with using spawnXX functions. > >I did, yes. Although I didn't at first - it was never mentioned in the info >for the spawn series of commands and I only happened upon the information >while looking for clues as to why it wasn't working. It didn't help. :-( > > >> par[0] should be the same string as prog, or it won't work. Also, the >> last member of par[] should be a NULL pointer. > >And that was the problem! I didn't know I should be passing a NULL pointer at >the end of the args list - the code works perfectly now. THANKS! > >Again, this isn't mentioned in the docs. Any other shortcomings I should know >about? ;-) The poster has a point here. Fix to the docs is attached (relative to that from alpha-980101). --=====================_894735171==_ Content-Type: text/plain; charset="us-ascii" *** src/libc/dos/process/dosexec.tx~ Fri Jan 2 04:10:08 1998 --- src/libc/dos/process/dosexec.txh Sat May 9 09:45:06 1998 *************** *** 55,67 **** shell with the built-in command as its argument. The programs are invoked with the arguments given. The zeroth argument ! is normally not used, since MS-DOS cannot pass it separately. There are two ways of passing arguments. The @code{l} functions (like ! @code{spawnl}) take a list of arguments, with a zero at the end of the list. This is useful when you know how many argument there will be ahead of time. The @code{v} functions (like @code{spawnv}) take a ! pointer to a list of arguments. This is useful when you need to compute ! the number of arguments at runtime. In either case, you may also specify @code{e} to indicate that you will be giving an explicit environment, else the current environment is used. --- 55,68 ---- shell with the built-in command as its argument. The programs are invoked with the arguments given. The zeroth argument ! is normally not used, since MS-DOS cannot pass it separately, but for ! compatibility it should be the name of the program. There are two ways of passing arguments. The @code{l} functions (like ! @code{spawnl}) take a list of arguments, with a @code{NULL} at the end of the list. This is useful when you know how many argument there will be ahead of time. The @code{v} functions (like @code{spawnv}) take a ! pointer to a list of arguments, which also must be @code{NULL}-terminated. ! This is useful when you need to compute the number of arguments at runtime. In either case, you may also specify @code{e} to indicate that you will be giving an explicit environment, else the current environment is used. --=====================_894735171==_ Content-Type: text/plain; charset="us-ascii" Nate Eldredge nate AT cartsys DOT com --=====================_894735171==_--