Existe una relación estrecha entre C y el sistema operativo que ejecuta los programas de C. El sistema operativo UNIX esta escrito en su mayor parte con C. En este capítulo se verá como C y UNIX interactuán juntos.
Se usa UNIX para manejar el espacio del archivo, para editar, compilar o ejecutar programas, entre otras cosas.
Sin embargo UNIX es mucho más útil que lo anterior.
open()
es un ejemplo de
una llamada al sistema.
Para usar las bibliotecas de funciones y las llamadas al sistema en un programa de C simplemente se debe llamar la función apropiada de C.
Ejemplos de las funciones de la biblioteca estándar que han sido vistas son las funciones de E/S de alto nivel -fprintf(), malloc(), ...
Operadores aritméticos, generadores de números aleatorios -- random(), srandom(), lrand48(), drand48(), etc. y funciones para conversión de cadenas a los tipos básicos de C (atoi(), atof(), etc.) son miembros de la biblioteca estándar stdlib.h.
Todas las funciones matemáticas como sin(), cos(), sqrt() son funciones de la biblioteca estándar de matemáticas (math.h).
Para muchas llamadas del sistema y funciones de las bibliotecas se tiene que incluir el archivo cabecera apropiado, por ejemplo: stdio.h, math.h.
Para usar una función se debe asegurar de haber puesto los correspondientes #include en el archivo de C. De esta forma la función puede ser llamada correctamente.
Es importante asegurarse que los argumentos tengan los tipos esperados, de otra forma la función probablemente producirá resultados extraños.
Algunas bibliotecas requieren opciones extras antes de que el compilador pueda soportar su uso. Por ejemplo, para compilar un programa que incluya funciones de la biblioteca math.h el comando podría ser de la siguiente forma:
gcc matprog.c -o matprog.c -lm
La opción final -lm es una instrucción para ligar la biblioteca matemática con el programa. La página de man para cada función usualmente informa si se requiere alguna bandera de compilación especial.
Información de casi todas las llamadas al sistema y funciones de biblioteca están disponibles en las páginas del man. Se encuentran disponibles en línea con tan sólo teclear man y el nombre de la función. Por ejemplo:
man drand48
nos dará información acerca de éste generador de números aleatorios.