System calls and libraries

Header files

Header files serve as the interface between your program and the libraries supplied by the C compilation system. Because the functions that perform standard I/O, for example, very often use the same definitions and declarations, the system supplies a common interface to the functions in the header file <stdio.h>. By the same token, if you have definitions or declarations that you want to make available to several source files, you can create a header file with any editor, store it in a convenient directory, and include it in your program as described in the first part of this section.

Header files traditionally are designated by the suffix .h, and are brought into a program at compile time. The preprocessor component of the compiler does this because it interprets the #include statement in your program as a directive. The two most commonly used directives are #include and #define. As we have seen, the #include directive is used to call in and process the contents of the named file. The #define directive is used to define the replacement token string for an identifier. For example,

   #define NULL   0
defines the macro NULL to have the replacement token sequence 0. See ``C and C++ compilation system'' for the complete list of preprocessing directives.

When you use a library function in your program, the manual page will tell you which header file, if any, needs to be included. If a header file is mentioned, it should be included before you use any of the associated functions or declarations in your program. It's generally best to put the #include right at the top of a source file. These are some frequently used header files:

assert.h assertion checking
ctype.h character handling
errno.h error conditions
float.h floating point limits
limits.h other data type limits
locale.h program's locale
math.h mathematics
setjmp.h nonlocal jumps
signal.h signal handling
stdarg.h variable arguments
stddef.h common definitions
stdio.h standard input/output
stdlib.h general utilities
string.h string handling
time.h date and time
unistd.h system calls

Next topic: How to use library functions
Previous topic: Libraries and header files

© 2004 The SCO Group, Inc. All rights reserved.
UnixWare 7 Release 7.1.4 - 27 April 2004