Next: Function Return Values, Previous: Types, Up: sb-posix

#### 16.3.3 Function Parameters

The calling convention is modelled after that of CMUCL's `UNIX` package: in particular, it's like the C interface except that:

1. Length arguments are omitted or optional where the sensible value is obvious. For example, `read` would be defined this way:

                 (read fd buffer &optional (length (length buffer))) => bytes-read

2. Where C simulates “out” parameters using pointers (for instance, in `pipe()` or `socketpair()`) these may be optional or omitted in the Lisp interface: if not provided, appropriate objects will be allocated and returned (using multiple return values if necessary).
3. Some functions accept objects such as filenames or file descriptors. Wherever these are specified as such in the C bindings, the Lisp interface accepts designators for them as specified in the 'Types' section above.
4. A few functions have been included in sb-posix that do not correspond exactly with their C counterparts. These are described in See Functions with idiosyncratic bindings.