LibC is designed so that services and applications from other environments, such as UNIX and Windows, can be ported to run on the NetWare operating system with a minimum of code changes. With this in mind, LibC provides standard and nonstandard interfaces for accessing services. These interfaces have the following classifications:
ANSI. Interfaces for strings, character types, files, directories, numeric values, processes, memory, environment, signals, time, reading, writing, printing.
BSD. Berkeley inspired interfaces for sockets, internet addresses, and byte order.
POSIX. Interfaces for files, directories, time, statistics, processes, reading, and writing.
NKS. NovellĀ® Kernel Services interfaces for file and directory I/O, synchronization, virtual machines, memory, threads, and time.
NetWare OS. Interfaces that expose NetWare operating system functions and provide access to operating system resources such as resource tags, NetWare events, console commands, set parameters, and console screens.
Novell. Interfaces specific to NetWare resources such as obtaining NLM information and NetWare operating system statistics or manipulating multibyte, Unicode, and UTF-8 strings.
Other. Common, useful, nonstandard interfaces, which are supported by NetWare and other operating systems.
You need to decide which types of interfaces to use in your application. For example, you can open a file with fdopen (ANSI), fopen (ANSI), open (POSIX), NXFileOpen (NKS), or NXFileOpenEx (NKS). If you are porting an application that uses mostly POSIX functions, you will probably find little reason to change to one of the other interfaces for opening a file. However, if your application needs a particular type of open mode for a file, you can use any of the interfaces for that file and continue to use POSIX interfaces for the other files. If you are writing an application that runs only on NetWare, you can use the NKS and NetWare OS functions.