Well, I'm glad to help. ;-)
And I think any "Segment Fault" must be a bug. So I sent a letter for this in guile-dev.

On Wed, Nov 23, 2011 at 8:16 PM, Paul Emsley <paul.emsley@bioch.ox.ac.uk> wrote:
Hi Nala Ginrut,

Thanks for your reply.

I suspect I expressed myself poorly. (execlp "ls" "") replaces guile with "ls", which lists my files and returns me to the shell.

What is some-function, where some-function works like this:

(some-function "ls")
-> "/bin/ls"  (I'd settle for #t")
(some-function "asdfasdf")
-> #f

I thought that execl or its friends would be the way to answer that question...

Thanks,

Paul.



On 23/11/11 05:47, Nala Ginrut wrote:
I think there's a bug.
(execlp "ls" "") will access.
Since the second parameter is optional, scm_execlp doesn't handle exec_argv unbounded situation.


On Wed, Nov 23, 2011 at 12:06 AM, Paul Emsley <paul.emsley@bioch.ox.ac.uk <mailto:paul.emsley@bioch.ox.ac.uk>> wrote:


   Hi,

   I am trying to see if there is a way to determine if a program is
   in the path (i.e. a bit like "which"), returning a #t or #f
   answer.  I was looking execl and execlp.

   The documentation for execl says:

   > Executes the file named by path as a new process image

   what is path ?  I'm guessing that that should be "filename".

   While playing around, I notice that

   (execlp "ls")

   produces a core dump.

   My question is then, *is* there a way to determine if a string is
   executable? (And if so, how? :-)

   Thanks,

   Paul.