<html lang="en"> <head> <title>Function Return Values - SBCL 1.0.31 User Manual</title> <meta http-equiv="Content-Type" content="text/html"> <meta name="description" content="SBCL 1.0.31 User Manual"> <meta name="generator" content="makeinfo 4.13"> <link title="Top" rel="start" href="index.html#Top"> <link rel="up" href="sb_002dposix.html#sb_002dposix" title="sb-posix"> <link rel="prev" href="Function-Parameters.html#Function-Parameters" title="Function Parameters"> <link rel="next" href="Lisp-objects-and-C-structures.html#Lisp-objects-and-C-structures" title="Lisp objects and C structures"> <link href="http://www.gnu.org/software/texinfo/" rel="generator-home" title="Texinfo Homepage"> <!-- This manual is part of the SBCL software system. See the `README' file for more information. This manual is largely derived from the manual for the CMUCL system, which was produced at Carnegie Mellon University and later released into the public domain. This manual is in the public domain and is provided with absolutely no warranty. See the `COPYING' and `CREDITS' files for more information. --> <meta http-equiv="Content-Style-Type" content="text/css"> <style type="text/css"><!-- pre.display { font-family:inherit } pre.format { font-family:inherit } pre.smalldisplay { font-family:inherit; font-size:smaller } pre.smallformat { font-family:inherit; font-size:smaller } pre.smallexample { font-size:smaller } pre.smalllisp { font-size:smaller } span.sc { font-variant:small-caps } span.roman { font-family:serif; font-weight:normal; } span.sansserif { font-family:sans-serif; font-weight:normal; } --></style> </head> <body> <div class="node"> <a name="Function-Return-Values"></a> <p> Next: <a rel="next" accesskey="n" href="Lisp-objects-and-C-structures.html#Lisp-objects-and-C-structures">Lisp objects and C structures</a>, Previous: <a rel="previous" accesskey="p" href="Function-Parameters.html#Function-Parameters">Function Parameters</a>, Up: <a rel="up" accesskey="u" href="sb_002dposix.html#sb_002dposix">sb-posix</a> <hr> </div> <h4 class="subsection">16.3.4 Function Return Values</h4> <p>The return value is usually the same as for the C binding, except in error cases: where the C function is defined as returning some sentinel value and setting <code>errno</code> on error, we instead signal an error of type <code>SYSCALL-ERROR</code>. The actual error value (<code>errno</code>) is stored in this condition and can be accessed with <code>SYSCALL-ERRNO</code>. <p>We do not automatically translate the returned value into “Lispy” objects – for example, <code>SB-POSIX:OPEN</code> returns a small integer, not a stream. Exception: boolean-returning functions (or, more commonly, macros) do not return a C integer, but instead a Lisp boolean. </body></html>