KLib satisfies these two conditions because the interfaces it furnishes don't require library context nor do they rely on static data to preserve state from one call to another. Nowdays, these developers also want intrinsically thread-safe interfaces, interfaces that operate on stack-based data (called auto-class in C) to perform operations that other threads, calling the same interfaces, cannot corrupt. (We'll touch on what library context is in a moment.) While they have been able to consume these interfaces from CLib without needing context, the way to do it was somewhat shrouded in uncertainty.
#Klib library code
However, since it mostly provides symbols that were formerly provided by CLib, existing applications need not concern themselves with existence (or non existence).ĭevelopers of drivers, protocol stacks, other kernel code, and also libraries want standard C runtime interfaces like strcpy and yet don't usually want to write their code in terms of library context. To find out which ones and when, please contact Novell Developer Support. Is being delivered in service packs on NetWare as far back as NetWare 4.11. Is the basis for many libraries on NetWare in that it furnishes a great number of common interfaces KLib provides them at this lower level for consumption by low-level code as well as applications. They are well-suited to drivers, stacks, libraries, and other low-level code. Consequently, KLib interfaces are completely reentrant and thread-safe. KLib interfaces act only upon input parameters and, when making use of global or other data not passed in through the interface (an example is _ctype), treat such data as read-only. In any case, the furnished functionality has no obligation to library concepts of thread binding, context, and ownership. The K in KLib stands for kernel because these functions might have been provided and consumed at that level. KLib is implemented by KLib.NLM and supplies interfaces which were once the domain of CLib to NLM developers that don't want to load atop CLib. This article covers a new runtime library, KLib, in use on the NetWare operating system. Debugging and Functions Called from KLib, CLib, and LibC.