tema 2: lenguajes de programación de sistemas: c - ssoo
TRANSCRIPT
![Page 1: Tema 2: Lenguajes de Programación de Sistemas: C - SSOO](https://reader036.vdocuments.mx/reader036/viewer/2022071604/62d0ac24a787133ae9109cd1/html5/thumbnails/1.jpg)
Puntos Desarrollados en la Sesión AnteriorOrganización de las Declaraciones en la Biblioteca Estándar C
Entrada/Salida en modo streamResumen y Lecturas Recomendadas
Tema 2:Lenguajes de Programación de Sistemas: C
SSOO - Curso 2005/06
E. Domínguez C. Villarrubia
Departamento de Tecnologías y Sistemas de InformaciónEscuela Superior de Informática
Universidad de Castilla - La Mancha
Noviembre de 2005
E. Domínguez, C. Villarrubia Tema 2
![Page 2: Tema 2: Lenguajes de Programación de Sistemas: C - SSOO](https://reader036.vdocuments.mx/reader036/viewer/2022071604/62d0ac24a787133ae9109cd1/html5/thumbnails/2.jpg)
Puntos Desarrollados en la Sesión AnteriorOrganización de las Declaraciones en la Biblioteca Estándar C
Entrada/Salida en modo streamResumen y Lecturas Recomendadas
Índice
1 Organización de las Declaraciones en la BibliotecaEstándar C
Funciones de Entrada/Salida, de Clasificación deCaracteres y de Tratamiento de CadenasFunciones MatemáticasFunciones de Utilidad General y para el Manejo de ListasVariables de ArgumentosFunciones de Fecha y HoraLímites Definidos por la Implementación
2 Entrada/Salida en modo stream
E. Domínguez, C. Villarrubia Tema 2
![Page 3: Tema 2: Lenguajes de Programación de Sistemas: C - SSOO](https://reader036.vdocuments.mx/reader036/viewer/2022071604/62d0ac24a787133ae9109cd1/html5/thumbnails/3.jpg)
Puntos Desarrollados en la Sesión AnteriorOrganización de las Declaraciones en la Biblioteca Estándar C
Entrada/Salida en modo streamResumen y Lecturas Recomendadas
Tema 2: Lenguajes de Programación de Sistemas: C
Sesión 7:La Biblioteca Estándar y la Entrada/Salida
E. Domínguez, C. Villarrubia Tema 2
![Page 4: Tema 2: Lenguajes de Programación de Sistemas: C - SSOO](https://reader036.vdocuments.mx/reader036/viewer/2022071604/62d0ac24a787133ae9109cd1/html5/thumbnails/4.jpg)
Puntos Desarrollados en la Sesión AnteriorOrganización de las Declaraciones en la Biblioteca Estándar C
Entrada/Salida en modo streamResumen y Lecturas Recomendadas
Resumen de Contenidos de la Sesión Anterior
En la sesión anterior hemos vistoDeclaración y uso de estructurasDeclaración y uso de unionesDeclaración y uso de enumeraciones
E. Domínguez, C. Villarrubia Tema 2
![Page 5: Tema 2: Lenguajes de Programación de Sistemas: C - SSOO](https://reader036.vdocuments.mx/reader036/viewer/2022071604/62d0ac24a787133ae9109cd1/html5/thumbnails/5.jpg)
Puntos Desarrollados en la Sesión AnteriorOrganización de las Declaraciones en la Biblioteca Estándar C
Entrada/Salida en modo streamResumen y Lecturas Recomendadas
E/S, Caracteres y CadenasFunciones MatemáticasUtilidad General y Listas VariablesFunciones de Fecha y HoraLímites Definidos por la Implementación
La Biblioteca Estándar C
Organización
La biblioteca estándar puede estar dividida en variosarchivosEl gestor de compilación del sistema de desarrolloenlazará automáticamente algunas de las funcionesnecesitadas, pero otras deberán ser enlazadas indicandoexplícitamente los archivos de biblioteca que las contienenEn el caso del sistema de desarrollo GNU, la bibliotecatiene dos partes: la general, que se enlazaautomáticamente, y la matemática m.a, que se enlaza apetición
E. Domínguez, C. Villarrubia Tema 2
![Page 6: Tema 2: Lenguajes de Programación de Sistemas: C - SSOO](https://reader036.vdocuments.mx/reader036/viewer/2022071604/62d0ac24a787133ae9109cd1/html5/thumbnails/6.jpg)
Puntos Desarrollados en la Sesión AnteriorOrganización de las Declaraciones en la Biblioteca Estándar C
Entrada/Salida en modo streamResumen y Lecturas Recomendadas
E/S, Caracteres y CadenasFunciones MatemáticasUtilidad General y Listas VariablesFunciones de Fecha y HoraLímites Definidos por la Implementación
La Biblioteca Estándar C
UtilizaciónEn un programa es necesario incluir un prototipo de unafunción antes de poder usarlaLas funciones de la biblioteca estándar están declaradasen archivos de cabecera preparados para su inclusión enel código fuente del programador mediante la directiva#include del preprocesadorEsos archivos de cabecera pueden ser incluidos variasveces sin problema
E. Domínguez, C. Villarrubia Tema 2
![Page 7: Tema 2: Lenguajes de Programación de Sistemas: C - SSOO](https://reader036.vdocuments.mx/reader036/viewer/2022071604/62d0ac24a787133ae9109cd1/html5/thumbnails/7.jpg)
Puntos Desarrollados en la Sesión AnteriorOrganización de las Declaraciones en la Biblioteca Estándar C
Entrada/Salida en modo streamResumen y Lecturas Recomendadas
E/S, Caracteres y CadenasFunciones MatemáticasUtilidad General y Listas VariablesFunciones de Fecha y HoraLímites Definidos por la Implementación
La Biblioteca Estándar C
InformaciónEn UNIX se puede acceder a la información de manual decualquier función de la biblioteca estándar (incluidos losnombres de las cabeceras necesarias) con la orden delshell
1 man 3 <nombre_de_funcion >
E. Domínguez, C. Villarrubia Tema 2
![Page 8: Tema 2: Lenguajes de Programación de Sistemas: C - SSOO](https://reader036.vdocuments.mx/reader036/viewer/2022071604/62d0ac24a787133ae9109cd1/html5/thumbnails/8.jpg)
Puntos Desarrollados en la Sesión AnteriorOrganización de las Declaraciones en la Biblioteca Estándar C
Entrada/Salida en modo streamResumen y Lecturas Recomendadas
E/S, Caracteres y CadenasFunciones MatemáticasUtilidad General y Listas VariablesFunciones de Fecha y HoraLímites Definidos por la Implementación
Funciones de Entrada/Salida
UtilizaciónCabecera a incluir: stdio.hFunciones para realizar E/S directa o en modo stream decaracteres o con formato y funciones de error en E/SEjemplos: printf, scanf, fopen, fclose, fgetc, fgets, fputc,ferror, feof
E. Domínguez, C. Villarrubia Tema 2
![Page 9: Tema 2: Lenguajes de Programación de Sistemas: C - SSOO](https://reader036.vdocuments.mx/reader036/viewer/2022071604/62d0ac24a787133ae9109cd1/html5/thumbnails/9.jpg)
Puntos Desarrollados en la Sesión AnteriorOrganización de las Declaraciones en la Biblioteca Estándar C
Entrada/Salida en modo streamResumen y Lecturas Recomendadas
E/S, Caracteres y CadenasFunciones MatemáticasUtilidad General y Listas VariablesFunciones de Fecha y HoraLímites Definidos por la Implementación
Funciones de Clasificación de Caracteres
UtilizaciónCabecera a incluir: ctype.hFunciones para determinación de clase de caracteresEjemplos: isalpha, isdigit, islower, isupper, isalnum
E. Domínguez, C. Villarrubia Tema 2
![Page 10: Tema 2: Lenguajes de Programación de Sistemas: C - SSOO](https://reader036.vdocuments.mx/reader036/viewer/2022071604/62d0ac24a787133ae9109cd1/html5/thumbnails/10.jpg)
Puntos Desarrollados en la Sesión AnteriorOrganización de las Declaraciones en la Biblioteca Estándar C
Entrada/Salida en modo streamResumen y Lecturas Recomendadas
E/S, Caracteres y CadenasFunciones MatemáticasUtilidad General y Listas VariablesFunciones de Fecha y HoraLímites Definidos por la Implementación
Funciones de Tratamiento de Cadenas
UtilizaciónCabecera a incluir: string.hFunciones para el tratamiento de las operaciones concadenas de caracteresEjemplos: strcpy, strncpy, strcat, strncat, strcmp, strncmp,strlen
E. Domínguez, C. Villarrubia Tema 2
![Page 11: Tema 2: Lenguajes de Programación de Sistemas: C - SSOO](https://reader036.vdocuments.mx/reader036/viewer/2022071604/62d0ac24a787133ae9109cd1/html5/thumbnails/11.jpg)
Puntos Desarrollados en la Sesión AnteriorOrganización de las Declaraciones en la Biblioteca Estándar C
Entrada/Salida en modo streamResumen y Lecturas Recomendadas
E/S, Caracteres y CadenasFunciones MatemáticasUtilidad General y Listas VariablesFunciones de Fecha y HoraLímites Definidos por la Implementación
Funciones Matemáticas
UtilizaciónCabecera a incluir: math.hFunciones para la realización de operaciones de cálculomatemáticoEjemplos: sin, cos, tan, asin, acos, atan, exp, log, log10,pow, sqrt, sinh, cosh, tanh
E. Domínguez, C. Villarrubia Tema 2
![Page 12: Tema 2: Lenguajes de Programación de Sistemas: C - SSOO](https://reader036.vdocuments.mx/reader036/viewer/2022071604/62d0ac24a787133ae9109cd1/html5/thumbnails/12.jpg)
Puntos Desarrollados en la Sesión AnteriorOrganización de las Declaraciones en la Biblioteca Estándar C
Entrada/Salida en modo streamResumen y Lecturas Recomendadas
E/S, Caracteres y CadenasFunciones MatemáticasUtilidad General y Listas VariablesFunciones de Fecha y HoraLímites Definidos por la Implementación
Funciones de Utilidad General
UtilizaciónCabecera a incluir: stdlib.hFunciones para conversión numérica, asignación yliberación de memoria y otrasEjemplos: atof, atoi, atol, malloc, free, realloc, rand, abs,abort, exit
E. Domínguez, C. Villarrubia Tema 2
![Page 13: Tema 2: Lenguajes de Programación de Sistemas: C - SSOO](https://reader036.vdocuments.mx/reader036/viewer/2022071604/62d0ac24a787133ae9109cd1/html5/thumbnails/13.jpg)
Puntos Desarrollados en la Sesión AnteriorOrganización de las Declaraciones en la Biblioteca Estándar C
Entrada/Salida en modo streamResumen y Lecturas Recomendadas
E/S, Caracteres y CadenasFunciones MatemáticasUtilidad General y Listas VariablesFunciones de Fecha y HoraLímites Definidos por la Implementación
Funciones para el Manejo de Listas Variables deArgumentos
UtilizaciónCabecera a incluir: stdarg.hFunciones para el manejo de listas variables deargumentosEjemplos: va_start, va_arg, va_end
E. Domínguez, C. Villarrubia Tema 2
![Page 14: Tema 2: Lenguajes de Programación de Sistemas: C - SSOO](https://reader036.vdocuments.mx/reader036/viewer/2022071604/62d0ac24a787133ae9109cd1/html5/thumbnails/14.jpg)
Puntos Desarrollados en la Sesión AnteriorOrganización de las Declaraciones en la Biblioteca Estándar C
Entrada/Salida en modo streamResumen y Lecturas Recomendadas
E/S, Caracteres y CadenasFunciones MatemáticasUtilidad General y Listas VariablesFunciones de Fecha y HoraLímites Definidos por la Implementación
Funciones de Fecha y Hora
UtilizaciónCabecera a incluir: time.hFunciones para la manipulación de los formatos de fecha yhoraEjemplos: time, ctime, localtime, asctime
E. Domínguez, C. Villarrubia Tema 2
![Page 15: Tema 2: Lenguajes de Programación de Sistemas: C - SSOO](https://reader036.vdocuments.mx/reader036/viewer/2022071604/62d0ac24a787133ae9109cd1/html5/thumbnails/15.jpg)
Puntos Desarrollados en la Sesión AnteriorOrganización de las Declaraciones en la Biblioteca Estándar C
Entrada/Salida en modo streamResumen y Lecturas Recomendadas
E/S, Caracteres y CadenasFunciones MatemáticasUtilidad General y Listas VariablesFunciones de Fecha y HoraLímites Definidos por la Implementación
Límites Definidos por la Implementación
UtilizaciónCabeceras a incluir: limits.h y float.hSe definen aquí constantes para especificar el tamaño delos enteros (en limits.h) y constantes relacionadas con laaritmética de punto flotante (en float.h)
E. Domínguez, C. Villarrubia Tema 2
![Page 16: Tema 2: Lenguajes de Programación de Sistemas: C - SSOO](https://reader036.vdocuments.mx/reader036/viewer/2022071604/62d0ac24a787133ae9109cd1/html5/thumbnails/16.jpg)
Puntos Desarrollados en la Sesión AnteriorOrganización de las Declaraciones en la Biblioteca Estándar C
Entrada/Salida en modo streamResumen y Lecturas Recomendadas
Entrada/Salida en modo stream
1 # inc lude < s t d i o . h># inc lude < s t d l i b . h>
3
void f i l e c o p y ( FILE ∗ , FILE ∗ ) ;5
/∗ cat : concatenacion de arch ivos ∗ /7 main ( i n t argc , char ∗argv [ ] )
{9 FILE ∗ fp ;
char ∗prog = argv [ 0 ] ; /∗ nombre de l programa11 para er ro res ∗ /
E. Domínguez, C. Villarrubia Tema 2
![Page 17: Tema 2: Lenguajes de Programación de Sistemas: C - SSOO](https://reader036.vdocuments.mx/reader036/viewer/2022071604/62d0ac24a787133ae9109cd1/html5/thumbnails/17.jpg)
Puntos Desarrollados en la Sesión AnteriorOrganización de las Declaraciones en la Biblioteca Estándar C
Entrada/Salida en modo streamResumen y Lecturas Recomendadas
Entrada/Salida en modo stream (cont.)
1 i f ( argc == 1) /∗ s in args ; cop ia r l a entradaestandar ∗ /
3 f i l e c o p y ( s td in , s tdou t ) ;else
5 while(−−argc > 0)i f ( ( fp = fopen (∗++ argv , "r" ) ) == NULL ) {
7 f p r i n t f ( s tde r r , "%s: no se puede abrir %s\n" ,prog , ∗argv ) ;
9 e x i t ( 1 ) ;}
11 else {f i l e c o p y ( fp , s tdou t ) ;
13 f c l o s e ( fp ) ;}
E. Domínguez, C. Villarrubia Tema 2
![Page 18: Tema 2: Lenguajes de Programación de Sistemas: C - SSOO](https://reader036.vdocuments.mx/reader036/viewer/2022071604/62d0ac24a787133ae9109cd1/html5/thumbnails/18.jpg)
Puntos Desarrollados en la Sesión AnteriorOrganización de las Declaraciones en la Biblioteca Estándar C
Entrada/Salida en modo streamResumen y Lecturas Recomendadas
Entrada/Salida en modo stream (cont.)
i f ( f e r r o r ( s tdou t ) ) {2 f p r i n t f ( s tde r r , "%s: error al escribir stdout\n" ,
prog ) ;4 e x i t ( 2 ) ;
}6 e x i t ( 0 ) ;
}
E. Domínguez, C. Villarrubia Tema 2
![Page 19: Tema 2: Lenguajes de Programación de Sistemas: C - SSOO](https://reader036.vdocuments.mx/reader036/viewer/2022071604/62d0ac24a787133ae9109cd1/html5/thumbnails/19.jpg)
Puntos Desarrollados en la Sesión AnteriorOrganización de las Declaraciones en la Biblioteca Estándar C
Entrada/Salida en modo streamResumen y Lecturas Recomendadas
Entrada/Salida en modo stream (cont.)
1 /∗ f i l e c o p y : copia e l a rch ivo i f p a l a rch ivo ofp ∗ /
3 void f i l e c o p y ( FILE ∗ i f p , FILE ∗ofp ){
5 i n t c ;
7 while ( ( c = getc ( i f p ) ) != EOF)putc ( c , ofp ) ;
9 }
E. Domínguez, C. Villarrubia Tema 2
![Page 20: Tema 2: Lenguajes de Programación de Sistemas: C - SSOO](https://reader036.vdocuments.mx/reader036/viewer/2022071604/62d0ac24a787133ae9109cd1/html5/thumbnails/20.jpg)
Puntos Desarrollados en la Sesión AnteriorOrganización de las Declaraciones en la Biblioteca Estándar C
Entrada/Salida en modo streamResumen y Lecturas Recomendadas
ResumenLecturas Recomendadas
Resumen
En esta sesión hemos vistoOrganización de la biblioteca estándar CUso de las cabeceras en los módulos fuenteEntrada/Salida en modo stream
E. Domínguez, C. Villarrubia Tema 2
![Page 21: Tema 2: Lenguajes de Programación de Sistemas: C - SSOO](https://reader036.vdocuments.mx/reader036/viewer/2022071604/62d0ac24a787133ae9109cd1/html5/thumbnails/21.jpg)
Puntos Desarrollados en la Sesión AnteriorOrganización de las Declaraciones en la Biblioteca Estándar C
Entrada/Salida en modo streamResumen y Lecturas Recomendadas
ResumenLecturas Recomendadas
Lecturas Recomendadas
Lecturas recomendadasB. W. Kernighan, D. M. Ritchie. El Lenguaje deProgramación C. 2a ed. Prentice Hall. 1991. Capítulo 7.B. W. Kernighan, D. M. Ritchie. El Lenguaje deProgramación C. 2a ed. Prentice Hall. 1991. Apéndice B.
E. Domínguez, C. Villarrubia Tema 2