X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=src%2Fcode%2Fmisc-aliens.lisp;h=bf11807f072f5f706eb87dcd6e42204a0b74f1b7;hb=9c3a9502bc872f024c365412d991ef43fd866e4c;hp=bcebb222b3fd9f2eb244d82a356b29ba88104869;hpb=0b3ec4b1d978b887db175b7b3bada8e727683e15;p=sbcl.git diff --git a/src/code/misc-aliens.lisp b/src/code/misc-aliens.lisp index bcebb22..bf11807 100644 --- a/src/code/misc-aliens.lisp +++ b/src/code/misc-aliens.lisp @@ -12,7 +12,15 @@ (in-package "SB!IMPL") (declaim (inline memmove)) -(def-alien-routine ("memmove" memmove) void +(define-alien-routine ("memmove" memmove) void (dest (* char)) (src (* char)) (n unsigned-int)) + +(define-alien-routine ("os_get_errno" get-errno) integer) +(setf (fdocumentation 'get-errno 'function) + "Return the value of the C library pseudo-variable named \"errno\".") + +;;; Decode errno into a string. +(defun strerror (&optional (errno (get-errno))) + (alien-funcall (extern-alien "strerror" (function c-string int)) errno))