Index of /pub/mirrors/ftp.novell.com/forge/libc

Icon  Name                               Last modified      Size  Description
[DIR] Parent Directory - [TXT] CHANGELOG.html 18-Feb-2005 10:05 10K [TXT] DEPENDENCIES.html 18-Feb-2005 16:41 1.5K [TXT] DOCUMENTATION.html 24-Jan-2005 00:00 132 [TXT] LICENSE.txt 24-Nov-2004 00:00 11K [TXT] README.html 17-Feb-2005 09:47 22K [TXT] SAMPLECODE.html 24-Jan-2005 00:00 132 [DIR] builds/ 27-Aug-2008 01:57 -
Libraries for C


Libraries for C

1.0 Overview
2.0 What's New
2.1 March 2005 Release
2.1.1 Apache Dependency
2.1.2 Syslogd Daemon
2.1.3 New POSIX Prelude File
2.1.4 New Header Files
2.1.5 Modified Header Files
2.2 What's New Archive
3.0 Installation Instructions
3.1 Compatibility with Tools and Other FAQs
3.2 Static-Linked Libraries
4.0 Documentation
5.0 Sample Code
6.0 Legal Notices


1.0 Overview

Libraries for C (LibC) is a C-language library that runs on a NetWare® server (5.1 SP5 and later) and enables you to build a server application, which adds services to the NetWare operating system. This application can run in kernel or user (protected) address space.


2.0 What's New

As a new environment, LibC is continually growing and evolving. The goal is to increase the POSIX compliance with each release, a trend that is rapidly resulting in creating two classes of LibC-based NLMs: those that want POSIX compliance and those that do not or do not care.The sections below highlight some of the changes that were made for this release.

There are several prototypes included in the header files that are not yet documented. Because LibC is evolving, these functions should be treated as future implementations. You can consume them, but they may lack full feature coverage or even be unstable. The best way to determine when and how to use these functions is by visiting the Libraries for C (LibC) Developer Support Forum:


2.1 March 2005 Release

This release is the candidate release for NetWare 6.5 SP3, NetWare 5.1 SP8, and Novell Open Enterprise Server.

It continues the major restructuring of the library, to increase support for POSIX standards and to provide a more UNIX-like separation between kernel-space and user-space programming.

POSIX path semantics and the POSIX prelude file are now officially supported. Subsequent releases of the library will continue to add support for missing POSIX features. For example, this release of the library includes increased support for signals, but fork is still in development.

The following sections describe some of the major new features in this release:


2.1.1 Apache Dependency

This version of LibC is dependent upon an updated version of the NetWare Apache server. Therefore, it is dependent upon NetWare 6.5 SP3, NetWare 5.1 SP8, or Novell Open Enterprise Server. If you update a test server with this version of LibC and this test server is not running one of these versions, you must also update your server with Apache server version 2.0.51, or your NetWare server fails to boot. To download this software, see Apache 2.0.x for NetWare Binaries.

Apache might not be the only dependency. Novell recommends running this version of LibC only with the supported NetWare versions.


2.1.2 Syslogd Daemon

The syslogd daemon is a standard logging device used by UNIX*, Linux*, and open source code. For more information, see Using syslogd Daemon.


2.1.3 New POSIX Prelude File

A new prelude object, posixpre.o (.obj and .gcc.o) has been added, for use in creating NLM applications and libraries that are fully POSIX semantic. For more information, see POSIX Prelude File.

For more information about using this feature to write a library, including coverage of the _init and _fini functions, see AppNote: Writing NetWare Loadable Modules (NLMs) as Shared Libraries.


2.1.4 New Header Files

This release contains a number of new header files, including but not limited to the following. The functions in these files are ready for experimental use:

glob.h
grp.h
regex.h
syslog.h
termios.h
sys/resource.h
sys/mman.h
sys/types.hsys/un.h


2.1.5 Modified Header Files

The following files have had modifications, some of which include adding new functions and macros. Many of these new functions have been added to the manual, but some are still in the experimental stage.

dfs.h
dirent.h
event.h
fenv.h
fsio.h
float.h
fshooks.h
math.h
netware.h
pthread.h
pwd.h
ringx.h
screen.h
semaphore.h
setjmp.h
signal.h
stdio.h
stdlib.h
unilib.h
unistd.h
utf8.h
wchar.h
wctype.h
windows.h
xmalloc.h
sys/socket.h
sys/stat.h
winsock/ws2ext.h
winsock/novsock2.h


2.2 What's New Archive

To see what was changed in the software, sample code, and documentation for previous releases, see the Update Archive.

To see the specific documentation changes that were made, see the Revision History.


3.0 Installation Instructions

For information about a default installation of LibC on a development workstation, see Installing the LibC SDK.

For information about installing the LibC NLMs on a testing server, see Installing the LibC Files on a NetWare Server.


3.1 Compatibility with Tools and Other FAQs

We attempt to allow for the greatest possible tools audience in LibC. However, we are unable to support every environment.

There are two files included on the NDK: libc.ali and libc.wmp. These are alias and import files for use from Watcom C 386 when targeting LibC. Because Watcom's linker does not support symbol prefixing (which is essential to LibC use), it would not normally be possible to consume LibC interfaces from Watcom. However, because of linker support or symbol aliasing, we have been able to work around this problem. These files are used in your link definition file with the following syntax:

    ALIAS  @libc.ali  
IMPORT @libc.wmp

Unfortunately, Watcom users cannot continue to consume Watcom's static C/C++ runtime library in conjunction with LibC so Watcom C++ cannot be supported.

We use Metrowerks CodeWarrior. If you are converting over from Watcom or another environment, see the documentation for Metrowerks CodeWarrior.


3.2 Static-Linked Libraries

Two new static-link libraries exist: libcaux.lib and libcaux.wcc. If you create applications that must run on old support packs, use these files. Old support packs include the following:

  • NetWare v5.1 SP4
  • NetWare v6.0 FCS
  • NetWare v6.0 SP1

The libcaux.lib file is for CodeWarrior users and the libcaux.wcc file is for Watcom users. If you link with the latest libcpre.o (or libcpre.obj) file, you must link with the appropriate library file because the new prelude object will require a DllMain stub to load. Earlier versions of LibC do not contain the DllMain stub so your NLM will not load. The solution is to link with the static-linked library. LibC in the following products contain the DllMain stub:

  • NetWare v5.1 SP5 or later
  • NetWare v6.0 SP2 or later
  • May 2002 NDK or later
  • NetWare 6.5

If you code a DllMain in your NLM, then you will not need to link this stub.

NOTE:  The DllMain technology did not work reliably until the October 2002 web update of the NDK.


4.0 Documentation

The download contains PDF files in the [install directory]\ndk\doc\libc directory.

If you selected an exe install, NDK documentation entries are enabled from Start menu. After you have installed the component, use the "NDK Documents" entry on your Start menu to quickly locate and access NDK documentation.

To read or print the documentation, you need Adobe Acrobat Reader 4.0 or later, a free download available from Adobe.

The document in this download was created as standalone file; therefore, links between the file in this download and links to files in other downloads will not resolve.


5.0 Sample Code

For sample code, see NDK Sample Code.


6.0 Legal Notices

Novell, Inc. makes no representations or warranties with respect to the contents or use of this download, and specifically disclaims any express or implied warranties of merchantability or fitness for any particular purpose. Further, Novell, Inc. reserves the right to revise this publication and to make changes to its content, at any time, without obligation to notify any person or entity of such revisions or changes.

Further, Novell, Inc. makes no representations or warranties with respect to any software, and specifically disclaims any express or implied warranties of merchantability or fitness for any particular purpose. Further, Novell, Inc. reserves the right to make changes to any and all parts of Novell software, at any time, without any obligation to notify any person or entity of such changes.

You may not use, export, or re-export this product in violation of any applicable laws or regulations including, without limitation, U.S. export regulations or the laws of the country in which you reside.

All files provided in this release are subject to the Novell Developer License Agreement, which can be found in the license.txt file provided in this download.

Copyright © 2002-2005 Novell, Inc. All rights reserved. No part of this publication may be reproduced, photocopied, stored on a retrieval system, or transmitted without the express written consent of the publisher.

Novell and NetWare are registered trademarks of Novell, Inc. in the United States and other countries.

All third-party products are the property of their respective owners.