LIB(9)                                                     LIB(9)

     NAME
          lib - C library functions used by the kernel

     SYNOPSIS
          #include "../port/lib.h"

     DESCRIPTION
          A small collection of functions from the normal Plan 9 C
          library is used in the kernel.  Only a subset is made avail-
          able by declarations in lib.h, which must be included
          instead of the usual <libc.h>.  Here is a list of the manual
          pages, and the functions from them declared by lib.h for
          kernel use:

               abs

               atoi, strtol, strtoul, strtoll, and strtoull

               cleanname

               dec64 and encodefmt

               Fmt, fmtinstall, fmtprint and fmtstrcpy

               getbe, putbe, getle, and putle

               getcallerpc

               getfields and tokenize (see also parsecmd(9))

               for quotefmtinstall

               print, seprint, snprint, sprint, vseprint and vsnprint,

               memccpy, memchr, memcmp, memmove and memset

               chartorune, runetochar, runelen, utflen and utfrune

     Page 1                       Plan 9            (printed 12/21/24)

     LIB(9)                                                     LIB(9)

               values OCEXEC, OEXCL, OEXEC, ORCLOSE, ORDWR, OREAD,
               OTRUNC and OWRITE,

               data structures Dir and Qid, and values DMDIR etc.  and
               QTDIR etc.

               strcat, strchr, strcmp, strcpy, strecpy, strlen,
               strncat, strncmp, strncpy, strrchr and strstr

               data structure Waitmsg

          lib.h also defines ERRMAX (the limit in bytes for error
          strings) and KNAMELEN (fixed-length limit in bytes for
          device driver file names)

          A few other libraries such as memdraw(2) and mp(2) are
          called by specialised kernel components and drivers but they
          use the normal include file for each library.

     Page 2                       Plan 9            (printed 12/21/24)