Diferencias
Muestra las diferencias entre dos versiones de la página.
| Ambos lados, revisión anteriorRevisión previaPróxima revisión | Revisión previa | ||
| el_lenguaje_de_programacion_c [2024/09/27 22:45] – peron | el_lenguaje_de_programacion_c [2026/04/21 16:06] (actual) – editor externo 127.0.0.1 | ||
|---|---|---|---|
| Línea 2: | Línea 2: | ||
| Este es un ejemplar amorosamente wikificado por ~peron de //El Lenguaje de Programación C//, 2da Edición, de B. Kerningham y D. Ritchie, adaptado para [[hacker|hackers]] del Tercer Mundo. | Este es un ejemplar amorosamente wikificado por ~peron de //El Lenguaje de Programación C//, 2da Edición, de B. Kerningham y D. Ritchie, adaptado para [[hacker|hackers]] del Tercer Mundo. | ||
| + | |||
| + | ==== Prefacios ==== | ||
| [[El lenguaje de programación C - Prefacios|Prefacios]] | [[El lenguaje de programación C - Prefacios|Prefacios]] | ||
| - | |||
| - | |||
| ==== Capítulos ==== | ==== Capítulos ==== | ||
| [[El lenguaje de programación C - Introducción|Introducción]] | [[El lenguaje de programación C - Introducción|Introducción]] | ||
| - | [[El lenguaje de Programación C - Capitulo 1|Capitulo 1]] | + | [[El lenguaje de Programación C - Capitulo 1|Capitulo 1: Introducción General]] |
| - | [[El lenguaje de Programación C - Capitulo 2|Capítulo 2]] | + | [[El lenguaje de Programación C - Capitulo 2|Capítulo 2: Tipos, operadores y expresiones]] |
| - | [[El lenguaje de Programación C - Capitulo 3|capitulo 3]] | + | [[El lenguaje de Programación C - Capitulo 3|capitulo 3: Control de Flujo]] |
| [[El lenguaje de Programación C - Capitulo 4 |Capitulo 4]] | [[El lenguaje de Programación C - Capitulo 4 |Capitulo 4]] | ||
| Línea 26: | Línea 26: | ||
| [[El lenguaje de Programación C - Capitulo 8 |Capitulo 8]] | [[El lenguaje de Programación C - Capitulo 8 |Capitulo 8]] | ||
| + | ==== Apéndices ==== | ||
| + | [[El lenguaje de Programación C - Apéndice A|Apéndice A: Manual de Referencia]] | ||
| + | [[El lenguaje de Programación C - Apéndice B|Apéndice B: Biblioteca Estándar]] | ||
| - | ===== Capítulo 7: ===== | + | [[El lenguaje |
| - | + | ||
| - | Las operaciones de entrada y salida no son en si parle del lenguaje C, por lo que hasta ahora no las hemos destacado. Sin embargo, los programas interactúan con su medio ambiente en formas mucho más complicadas de las que hemos mostrado antes. En este capítulo describiremos la biblioteca estándar, un conjunto de funciones que proporcionan entrada y salida, manipulación de cadenas, manejo de memoria, rutinas matemáticas y una variedad de otros servicios para programas en C, aunque haremos hincapié en la entrada y salida. | + | |
| - | + | ||
| - | El estándar ANSI define de manera precisa estas funciones de biblioteca, de modo que pueden existir en forma compatible en cualquier sistema en donde exista C. Los programas que restringen su interacción con el sistema a las facilidades provistas por la biblioteca estándar pueden ser llevados de un sistema a otro sin cambios. | + | |
| - | + | ||
| - | Las propiedades de las funciones de biblioteca están especificadas en más de una docena de // | + | |
| - | + | ||
| - | ==== 7.1 Entrada y salida estándar ==== | + | |
| - | + | ||
| - | ==== 7.2 Salida con formato - printf ==== | + | |
| - | + | ||
| - | == Tabla 7-1. Conversiones básicas de Printf == | + | |
| - | + | ||
| - | ==== 7.3 Listas de argumentos de longitud variable ==== | + | |
| - | + | ||
| - | ==== 7.4 Entrada con formato — scanf ==== | + | |
| - | + | ||
| - | == Tabla 7-2 - Conversiones básicas de scanf == | + | |
| - | + | ||
| - | ^Caracter ^Dato de entrada: | + | |
| - | |'''' | + | |
| - | |'''' | + | |
| - | |'''' | + | |
| - | |'''' | + | |
| - | |'''' | + | |
| - | |'''' | + | |
| - | |'''' | + | |
| - | |'''' | + | |
| - | |'''' | + | |
| - | + | ||
| - | + | ||
| - | ==== 7.5 Acceso a archivos ==== | + | |
| - | + | ||
| - | ==== 7.6 Manejo de errores—stderr y exit ==== | + | |
| - | + | ||
| - | ==== 7.7 Entrada y salida de líneas ==== | + | |
| - | + | ||
| - | ==== 7.8 Otras funciones ==== | + | |
| - | + | ||
| - | La biblioteca estándar proporciona una amplia variedad de funciones. Esta sección es una breve sinopsis de las más útiles. En el [[#apendice b|apéndice B]] pueden encontrarse más detalles y muchas otras funciones. | + | |
| - | + | ||
| - | === 7.8.1 Operaciones sobre cadenas === | + | |
| - | + | ||
| - | === 7.8.2 Prueba y conversión de clases de caracteres === | + | |
| - | + | ||
| - | === 7.8.3 Ungete === | + | |
| - | + | ||
| - | === 7.8.4 Ejecución de órdenes === | + | |
| - | + | ||
| - | === 7.8.5 Administración del almacenamiento === | + | |
| - | + | ||
| - | === 7.8.6 Funciones matemáticas === | + | |
| - | + | ||
| - | + | ||
| - | === 7.8.7 Generación de números aleatorios === | + | |
| - | + | ||
| - | + | ||
| - | ===== Capítulo 8: La interfaz con el sistem a UNIX ===== | + | |
| - | + | ||
| - | El sistema operativo UNIX proporciona sus servicios a través | + | |
| - | + | ||
| - | Incluso, si se emplea C en un sistema operativo diferente el lector debería ser capaz de adentrarse en la programación estudiando estos ejemplos; aunque los detalles varían, se encontrará un código semejante en cualquier sistema. Puesto que la biblioteca de C ANSI está en muchos casos modelada con base en las facilidades de UNIX , este código puede ayudar también a su entendimiento. | + | |
| - | + | ||
| - | El capítulo está dividido en tres partes fundamentales: | + | |
| - | + | ||
| - | El capítulo 7 tuvo que ver con una interfaz de entrada/ | + | |
| - | + | ||
| - | ==== 8.1 Descriptores de Archivos ==== | + | |
| - | + | ||
| - | ==== 8.2 E/S de bajo nivel — read y write ==== | + | |
| - | + | ||
| - | ==== 8.3 Open, creat, close, unlink ==== | + | |
| - | + | ||
| - | ==== 8.4 Acceso aleatorio — lseek ==== | + | |
| - | + | ||
| - | ==== 8.5 Ejemplo | + | |
| - | + | ||
| - | ==== 8.6 Ejemplo — listado de directorios ==== | + | |
| - | + | ||
| - | ==== 8.7 Ejemplo - Asignador de memoria ==== | + | |
| - | + | ||
| - | ===== Apéndice | + | |
| - | + | ||
| - | === A1: Introducción === | + | |
| - | + | ||
| - | Este manual describe al lenguaje | + | |
| - | + | ||
| - | En su mayor parte, este manual sigue la línea amplia del borrador estándar, que a su vez sigue la de la primera edición de este libro, aunque la organización difiere en el detalle. Excepto por renombrar algunas producciones y porque no se formalizan las definiciones de los componentes léxicos o del preprocesador, | + | |
| - | + | ||
| - | >En este manual, el material comentado se encuentra sangrado y escrito en un tipo más pequeño, como este. A menudo estos comentarios resaltan las formas en las que el estándar ansí de C difiere del lenguaje definido por la primera edición de este libro, o de refinamientos introducidos posteriormente en varios compiladores. | + | |
| - | ===== Apéndice B: Biblioteca Estándar ===== | ||
| - | ===== Apéndice C: Resúmen de Modificaciones ===== | ||
| - | Desde la publicación de la primera edición de este libro, la definición del lenguaje C ha sufrido modificaciones. Casi todas fueron extensiones al lenguaje original, y fueron diseñadas cuidadosamente para permanecer compatibles con la práctica existente; algunas repararon ambigüedades de la descripción original, y otras representan modificaciones de la práctica existente. Muchas de las nuevas características se anunciaron en los documentos que acompañan a los compiladores disponibles de AT&T, y posteriormente se han adoptado por otros proveedores de compiladores del lenguaje C. Recientemente, | ||
| - | Este apéndice resume las diferencias entre el lenguaje definido por la primera edición de este libro, y lo esperado como la definición del estándar final. Trata solamente al lenguaje en sí, no a su entorno ni a su biblioteca; aunque esas son partes importantes del estándar, hay poco con qué compararlas, | ||
| - | * El preprocesamiento está definido más cuidadosamente en el Estándar que en la primera edición, y está extendido: está explícitamete basado en tokens (símbolos); | ||
| - | * El significado mínimo el más pequeño de todos los identificadores internos se incrementó a 31 caracteres; permitido para identificadores con liga externo permanece en 6 letras, sin importar sin son mayúsculas o minúsculas (muchas implantaciones proporcionan más). | ||
| - | * Las secuencias trigráficas introducidas por ?? permiten la representación de caracteres que no se encuentran en algunos conjuntos. Están definidos los escapes para ''#'' | ||
| - | de cadenas que contengan la secuencia ''??'' | ||
| - | * Se introdujeron nuevas palabras reservadas (void, const, volatile, signed. enum). La palabra reservada entry, que nunca se puso en uso, fue retirada. | ||
| - | * Se definen nuevas secuencias de escape para uso dentro de constantes de carácter y cadenas literales. El efecto de seguir ''< | ||
