> I cannot process this way any file that name contains whitespaces. > Replacing 'my file' with '"my file"', 'my\ file', '"my\ file"' > has no effect; apart from that exec(myprog, '"myfile"') does not work > even if filename has no spaces. > The problem seems to depend on the way of passing arguments to the > program, not on the program itself: many programs like /bin/cat, > /bin/gzip, and others behave similarily. > > Using > execv(myprog + ' '+myfile); > exec(myprog+ ' '+myfile, ''); > result the same. > The problem is only in Unix. What am I doing wrong?
The harsh answer: 1 using spaces in unix :-) 2 using 1.0.x, while 1.9.x is so much better. The explanation: Seriously, it was a bug, it is fixed. To avoid similar problems, 1.9.2 and later have a function sysutils.executeprocess that avoids it all together by avoiding the parsing stage and passing arguments separately from the executable name. sysutils.executeproces('/path to/the file/ with a space',['arg1 arg2','arg2 arg3']); The exec[v|e|p] functions are renamed to fpexec() and also have this. _______________________________________________ fpc-pascal maillist - [EMAIL PROTECTED] http://lists.freepascal.org/mailman/listinfo/fpc-pascal