From: David Brown Date: Mon, 15 Oct 2007 00:03:47 GMT Subject: Re: Switching from CVS to GIT Message-ID: <20071015000347.GA13033@old.davidb.org> In-Reply-To: <023101c80eb5$e3b6b310$2e08a8c0@CAM.ARTIMI.COM> On Sun, Oct 14, 2007 at 11:59:35PM +0100, Dave Korn wrote: >On 14 October 2007 23:15, Alex Riesen wrote: > >> Interprocess communication: >> >> - it has only one argument (limited in size) passed to started >> programs, which means that there is no possible way to safely pass >> file and text arguments on command line (more than one, that is) > > Whuh? > >http://msdn2.microsoft.com/en-us/library/y5zz48s1(VS.80).aspx The MS exec* calls just concatenate all of the argv arguments, separating them with a space into a single buffer. Look at the general _exec* page: http://msdn2.microsoft.com/en-us/library/431x4c1w(VS.80).aspx and read the first "Note" section. If you know what the library on the other end is doing to re-parse the arguments back into separate strings, it might be possible to quote things enough to handle names with spaces, but it is hard. David