[cffi-devel] Using the exec() family of functions

Stelian Ionescu stelian.ionescu-zeus at poste.it
Mon Mar 30 13:00:21 UTC 2009


On Sun, 2009-03-29 at 12:11 +0200, Leslie P. Polzer wrote:
> Hi,
> 
> I have tried to use execv() from glibc in SBCL, but it's either
> not compatible with SBCL for some reason or I'm not calling it
> correctly.
> 
> Perhaps one of you guys can spot mistakes here:

you haven't read its man page carefully

> CL-USER(2): (use-package :cffi)
> 
> T
> CL-USER(3): (define-foreign-library libc (:unix "libc.so.6"))
> 
> LIBC
> CL-USER(4): (use-foreign-library libc)
> 
> #<CFFI::FOREIGN-LIBRARY {B277599}>
> CL-USER(7): (defcfun "execv" :int (path :string) (args :pointer))
> 
> EXECV
> CL-USER(14): (execv "/bin/chmod" (null-pointer))
> zsh: segmentation fault  rlwrap sbcl

(defcfun (%execv "execv") :int (path :string) (args :pointer))

(defun execv/0 (binary)
  (check-type binary string)
  (with-foreign-string (cstring binary)
    (with-foreign-object (v :pointer 2)
      (setf (mem-aref v :pointer 0) cstring)
      (setf (mem-aref v :pointer 1) (null-pointer))
      (%execv binary v))))

-- 
Stelian Ionescu a.k.a. fe[nl]ix
Quidquid latine dictum sit, altum videtur.

-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 198 bytes
Desc: This is a digitally signed message part
URL: <https://mailman.common-lisp.net/pipermail/cffi-devel/attachments/20090330/c9c32fc6/attachment.sig>


More information about the cffi-devel mailing list