Manual de C
Héctor Tejeda Villela
•
• 1. Compilación de un programa en C/C++
Índice General
• 1.1 Creación, compilación y ejecución de un programa
• 1.1.1 Creación del programa
• 1.1.2 Compilación
• 1.1.3 Ejecución del programa
• 1.2 El modelo de compilación de C
• 1.3 El preprocesador
• 1.4 Compilador de C
• 1.5 Ensamblador
• 1.6 Ligador
• 1.7 Algunas opciones útiles del compilador
• 1.8 Uso de las bibliotecas
• 1.9 Ejemplos
• 1.9.1 Creación de una biblioteca estática
• 1.9.2 Creación de una biblioteca compartida
• 1.10 Funciones de la biblioteca de UNIX
• 1.10.1 Encontrando información acerca de las bibliotecas.
• 1.11 Ejercicios
• 2. Principios de C
• 2.1 Orígenes del C
• 2.2 Características de C
• 2.3 Estructura de un programa en C
• 2.4 Variables
• 2.4.1 Definición de variables globales
• 2.4.2 Lectura y escritura de variables
• 2.5 Constantes
• 2.6 Operadores Aritméticos
• 2.7 Operadores de Comparación
• 2.8 Operadores lógicos
• 2.9 Orden de precedencia
• 2.10 Ejercicios
• 3. Estructuras Condicionales
if
• 3.1 La sentencia
?
• 3.2 El operador
• 3.3 La sentencia
switch
• 3.4 Ejercicios
• 4. Iteración
for
• 4.1 La sentencia
• 4.2 La sentencia
while
dowhile
• 4.3 La sentencia
• 4.4 Uso de
break
• 4.5 Ejercicios
y
continue
• 5. Arreglos y cadenas
• 5.1 Arreglos unidimensionales y multidimensionales
• 5.2 Cadenas
• 5.3 Ejercicios
• 6. Funciones
void
• 6.1 Funciones
• 6.2 Funciones y arreglos
• 6.3 Prototipos de funciones
• 6.4 Ejercicios
• 7. Más tipos de datos
• 7.1 Estructuras
• 7.1.1 Definición de nuevos tipos de datos
• 7.2 Uniones
• 7.3 Conversión de tipos (casts)
• 7.4 Enumeraciones
• 7.5 Variables estáticas
• 7.6 Ejercicios
• 8. Apuntadores
• 8.1 Definición de un apuntador
• 8.2 Apuntadores y Funciones
• 8.3 Apuntadores y arreglos
• 8.4 Arreglos de apuntadores
• 8.5 Arreglos multidimensionales y apuntadores
• 8.6 Inicialización estática de arreglos de apuntadores
• 8.7 Apuntadores y estructuras
• 8.8 Fallas comunes con apuntadores
• 8.9 Ejercicios
• 9. Asignación dinámica de memoria y Estructuras dinámicas
y
free
realloc
malloc, sizeof
• 9.1 Uso de
y
calloc
• 9.2
• 9.3 Listas ligadas
• 9.4 Programa de revisión
• 9.5 Ejercicios
• 10. Tópicos avanzados con apuntadores
• 10.1 Apuntadores a apuntadores
• 10.2 Entrada en la línea de comandos
• 10.3 Apuntadores a funciones
• 10.4 Ejercicios
• 11. Operadores de bajo nivel y campos de bit
• 11.1 Operadores sobre bits
• 11.2 Campos de bit
• 11.2.1 Portabilidad
• 11.3 Ejercicios
• 12. El preprocesador de C
• 12.1 Directivas del preprocesador
#define
• 12.1.1
• 12.1.2
#undef
#include
• 12.1.3
• 12.1.4
#if
Inclusión condicional
• 12.2 Control del preprocesador del compilador
• 12.3 Otras directivas del preprocesador
• 12.4 Ejercicios
• 13. C, UNIX y las bibliotecas estándar
• 13.1 Ventajas del usar UNIX con C
• 13.2 Uso de funciones de bibliotecas y llamadas del sistema
<stdlib.h>
• 14. Biblioteca
• 14.1 Funciones aritméticas
• 14.2 Números aleatorios
• 14.3 Conversión de cadenas
• 14.4 Búsqueda y ordenamiento
• 14.5 Ejercicios
<math.h>
• 15. Biblioteca
• 15.1 Funciones matemáticas
• 15.2 Constantes matemáticas
• 16. Entrada y salida (E/S)
stdio.h
• 16.1 Reportando errores
perror()
• 16.1.1
errno
• 16.1.2
• 16.1.3
exit
• 16.2 Flujos
• 16.2.1 Flujos predefinidos
• 16.3 E/S Basica
• 16.4 E/S formateada
printf
• 16.4.1
• 16.4.2
scanf
• 16.5 Archivos
• 16.6
• 16.5.1 Lectura y escritura de archivos
sprintf
• 16.6.1 Petición del estado del flujo
sscanf
y
• 16.7 E/S de bajo nivel o sin almacenamiento intermedio
• 16.8 Ejercicios
<string.h>
• 17. Manejo de cadenas
• 17.1 Funciones básicas para el manejo de cadenas
• 17.1.1 Búsqueda en cadenas
• 17.2 Prueba y conversión de caracteres
• 17.3 Operaciones con la memoria
<memory.h>
• 17.4 Ejercicios
<ctype.h>
• 18. Acceso de Archivos y llamadas al sistema de directorios
<unistd.h>
• 18.1 Funciones para el manejo de directorios
• 18.1.1 Busqueda y ordenamiento de directorios:
sys/types.h
, sys/dir.h
• 18.2 Rutinas de manipulación de archivos: unistd.h, sys/types.h, sys/stat.h
• 18.2.1 Permisos de accesos a archivos
• 18.2.2 Estado de un archivo
• 18.2.3 Manipulación de archivos: stdio.h, unistd.h
<stdio.h>
• 18.2.4 Creación de archivos temporales:
• 18.3 Ejercicios
• 19. Funciones para el tiempo
• 19.1 Funciones básicas para el tiempo
• 19.2 Ejemplos de aplicaciones de funciones del tiempo.
• 19.2.1 Ejemplo 1: Tiempo (en segundos) para hacer algún cálculo.
• 19.2.2 Ejemplo 2: Inicializar la semilla de un número aleatorio.
• 19.3 Ejercicios
• 20. Control de procesos:
<stdlib.h>
, <unistd.h>
• 20.1 Ejecutando comandos de UNIX desde C
execl()
• 20.2
fork()
• 20.3
wait()
• 20.4
• 20.5
exit()
• 20.6 Ejercicios
• 21. Compilación de Programas con Archivos Múltiples
• 21.1 Archivos Cabezera
• 21.2 Variables y Funciones Externas
• 21.2.1 Alcance de las variables externas
• 21.3 Ventajas de Usar Varios Archivos
• 21.4 Como dividir un programa en varios archivos
• 21.5 Organización de los Datos en cada Archivo
• 21.6 La utilería Make
• 21.6.1 Programando Make
• 21.7 Creación de un Archivo Make (Makefile)
• 21.8 Uso de macros con Make
Make
• 21.9 Ejecución de
• 22. Comunicación entre procesos (IPC Interprocess Communication), PIPES
<stdio.h>
• 22.1 Entubando en un programa de C
Tubería formateada
popen()
• 22.1.1
Tubería de bajo nivel
• 22.1.2
pipe()
• 23. Sockets
• 23.1 Creación y nombrado de sockets
• 23.2 Conectando sockets de flujo
• 23.2.1 Transferencia de datos en un flujo y cerrado
• Sobre este documento...
Última modificación : 20050812
Héctor Tejeda V
[email protected]
Subsecciones
• 1.1 Creación, compilación y ejecución de un programa
• 1.1.1 Creación del programa
• 1.1.2 Compilación
• 1.1.3 Ejecución del programa
• 1.2 El modelo de compilación de C
• 1.3 El preprocesador
• 1.4 Compilador de C
• 1.5 Ensamblador
• 1.6 Ligador
• 1.7 Algunas opciones útiles del compilador
• 1.8 Uso de las bibliotecas
• 1.9 Ejemplos
• 1.9.1 Creación de una biblioteca estática
• 1.9.2 Creación de una biblioteca compartida
• 1.10 Funciones de la biblioteca de UNIX
• 1.10.1 Encontrando información acerca de las bibliotecas.
• 1.11 Ejercicios
1. Compilación de un programa en C/C++
En esta capítulo se dan las procesos básicos que se requieren para compilar un programa de C. Se
describe también el modelo de compilación de C y también como C soporta bibliotecas adicionales.
1.1 Creación, compilación y ejecución de un
programa
1.1.1 Creación del programa
Se puede crear un archivo que contenga el programa completo, como en los ejemplos que se tienen
más adelante. Se puede usar cualquier editor de textos ordinario con el que se este familiarizado. Un
editor disponible en la mayoría de los sistemas UNIX es vi, y en Linux se puede usar pico.
Por convención el nombre del archivo debe terminar con ``.c'' por ejemplo: miprograma.c
progprueba.c. El contenido del archivo deberá obedecer la sintaxis de C.
1.1.2 Compilación
Existen muchos compiladores de C. El cc es el compilador estándar de Sun. El compilador GNU de
C es gcc, el cual es bastante popular y esta disponible en varias plataformas.
Existen también compiladores equivalentes de C++ los cuales usualmente son nombrados como CC.
Por ejemplo, Sun provee CC y GNU GCC. El compilador de GNU es también denotado como g++.
Existen otros compiladores menos comunes de C y C++. En general todos los compiladores
mencionados operan esencialmente de la misma forma y comparten muchas opciones comunes en
la línea de opciones. Más adelante se listan y se dan ejemplos de opciones comunes de los
compiladores. Sin embargo, la mejor referencia de cada compilador es a través de las páginas en
línea, del manual del sistema. Por ejemplo: man gcc.
Para compilar el programa usaremos el comando gcc. El comando deberá ser seguido por el
nombre del programa en C que se quiere compilar. Un determinado número de opciones del
compilador pueden ser indicadas también. Por el momento no haremos uso de estas opciones
todavía, se irán comentando algunas más esenciales.
Por lo tanto, el comando básico de compilación es:
gcc programa.c
donde programa.c es el nombre del archivo.
Si hay errores obvios en el programa (tales como palabras mal escritas, caracteres no tecleados u
omisiones de punto y coma), el compilador se detendrá y los reportará.
Podría haber desde luego errores lógicos que el compilador no podrá detectar. En el caso que esta
fuera la situación se le estará indicando a la computadora que haga las operaciones incorrectas.
Cuando el compilador ha terminado con éxito, la versión compilada, o
Comentarios de: manual de C (0)
No hay comentarios