21
Puntos Desarrollados en la Sesión Anterior Organización de las Declaraciones en la Biblioteca Estándar C Entrada/Salida en modo stream Resumen 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ón Escuela Superior de Informática Universidad de Castilla - La Mancha Noviembre de 2005 E. Domínguez, C. Villarrubia Tema 2

Tema 2: Lenguajes de Programación de Sistemas: C - SSOO

  • Upload
    others

  • View
    3

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Tema 2: Lenguajes de Programación de Sistemas: C - SSOO

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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