Funciones de librerías C GNU/Linux Copyright (c) 2006, Jose Daniel Gutiérrez Porset

Slides:



Advertisements
Presentaciones similares
Universidad Tecnológica Nacional Facultad Regional Buenos Aires Ingeniería en Sistemas de Información Introducción a C Sistemas Operativos.
Advertisements

Manejo de archivos.
Tema #10. FICHEROS.
FICHEROS.
Universidad Domingo Savio Facultad de Ciencias y Tecnología de la Información Carrera Ingeniería en Redes y Telecomunicaciones Materia : Programación I.
Programación I Teoría IX: Entrada/Salida
Programación, Algoritmos y Estructuras de Datos
Estructuras externas de Datos: Archivos
String o Cadenas Prof. Gonzalo Pastor. Cadenas o String ► En C, una cadena o texto se define como un vector de caracteres de longitud determinada que.
Programación Científica
Archivos Programación.
Informática Ingeniería en Electrónica y Automática Industrial
Asignatura: Lenguaje de Programación de Sistemas PPT No.05 Programa vespertino de Ingeniería (E) en Sistemas Computacionales Profesor: José Estay Araya.
Archivos. fopen(...) Para comenzar a utilizar un archivo primero se debe abrir, invocando a la función fopen(...) FILE * fopen(char* nombre_arch, char*
Cadenas y apuntadores Programación.
Archivos.
Estructuras-Archivos
Programación I Teoría VIII: Entrada/Salida
Informática Ingeniería en Electrónica y Automática Industrial
Introducción Entrada/Salida L.P.S.I.
Archivos Programación I MC Beatriz Beltrán Martínez.
Capitulo 4 Arreglos o Arrays Unidimensionales Bidimensionales Strings
Computación I. CI-2125 Tema VIII
 Todas las operaciones que se producen en el teclado y la pantalla de la computadora.  A continuación algunas funciones básicas de entrada y salida.
Archivos. Introducción Los datos que hemos tratado hasta el momento han residido en la memoria principal. Sin embargo, las grandes cantidades de datos.
FUNDAMENTOS DE PROGRAMACIÓN VARIABLES, CONSTANTES Y TIPOS DE DATOS EN C.
Manejo de archivos de texto.  Unidad fundamental de almacenamiento dentro del ámbito de la informática. Alberga un conjunto de datos que es posible leer,
Introducción al Lenguaje C (II) Cadenas de caracteres, archivos de cabecera, lectura y escritura Fundamentos de Programación Departamento de Lenguajes.
Lenguaje C Copyleft (c) 2006, Jose Daniel Gutiérrez Porset
Memoria Dinámica Jornadas de Marzo 2010 Grupo de Usuarios de Linux Tania Pérez.
Programación II Sesión 3. TABLA DE CONTENIDO  Tipos de Datos en C  Delimitadores  Tipo Char  Tipo Int  Tipo Float  Tipo Double  Constantes  Operadores.
RubyNote ARCHIVOS EN RUBY HECHO POR: FRANCISCO ALVAREZ AGUILA.
Flujos de datos Un flujo es un canal por donde fluyen los datos.
LENGUAJE C. El lenguaje de programación C  El C es un lenguaje de programación creado en 1972 por Dennis M. Ritchie en los Laboratorios Bell  Evolución.
Programación en C - manejo de Archivos
Arreglos y cadenas de texto
Ultima actualización 23/08/13
Comandos Básicos Comandos Básicos Jornadas Octubre 2009 GUL – UC3M
Programación en C - manejo de Archivos
Conceptos Básicos de Programación
FUNCIONES Y PROCEDIMIENTOS
Informática Ingeniería en Electrónica y Automática Industrial
UNIVERSIDAD AUTONOMA METROPOLITANA Programación Estructurada
Tema 3. Fundamentos para la construcción de código a partir del algoritmo Objetivo: El alumno construirá programas utilizando el lenguaje de programación.
Computación 2017 Archivos.
Tema 3. Fundamentos para la construcción de código a partir del algoritmo Objetivo: El alumno construirá programas utilizando el lenguaje de programación.
FÓRMULAS Una fórmula es la representación de una operación aritmética en una hoja de cálculo. Características: Siempre comienza por el signo igual(=) ó.
Tema 4 Elementos para el Desarrollo de Algoritmos
2da clase ofimatica.
Programación Orientada a Objetos
Modulo 0: Administratrivia
Curso de iniciación al trabajo con MatLab 7.0
LENGUAJE C.
Introducción al Visual Basic  Un programa en sentido informático está constituido en un sentido general por variables que contienen los datos con los.
Matlab como calculadora
Programación I MC José Andrés Vázquez Flores
Unidad 7 Manejo de Archivos Copyright © 2005.
Fundamentos de Informática Especialidad de Electrónica –
MC Beatriz Beltrán Martínez Otoño 2017
Símbolos Indice Pág. Direcionamiento Absoluto y Simbólico
Informática Ingeniería en Electrónica y Automática Industrial
Informática Ingeniería en Electrónica y Automática Industrial
Informática Ingeniería en Electrónica y Automática Industrial
Tema 10b Manejo de archivos de caracteres en C. E/S para archivos Las funciones y tipos están definidos en FILE –Estructura que define un descriptor de.
Informática Ingeniería en Electrónica y Automática Industrial
2.  Diagramas de Estado.
Informática Ingeniería en Electrónica y Automática Industrial
Lo que nosotros vamos a ver son los números enteros negativos
UNIVERSIDAD JUÁREZ AUTÓNOMA DE TABASCO Nombres: Isaac Sánchez García Teofilo Martinez Garcia Ricardo Del Carmen Paz López Vanesa Anahí Pérez Lizárraga.
Memoria estática versus dinámica con Estructuras
Transcripción de la presentación:

Funciones de librerías C GNU/Linux Copyright (c) 2006, Jose Daniel Gutiérrez Porset

2 Acerca de este documento Copyright (c) 2006, Jose Daniel Gutiérrez Porset Se otorga permiso para copiar, distribuir y/o modificar este documento bajo los términos de la Licencia de Documentación Libre de GNU en su versión 1.2 o cualquier otra versión posterior publicada por la Free Software Foundation, siendo todo él invariante. Una copia de la licencia está disponible en la web de la Free Software Foundation, dentro de la sección titulada GNU Free Documentation License. Este documento ha sido realizado íntegramente con software libre. Licencia de Uso

3 Índice ● Licencia de uso de este documento ● Ayuda de funciones ● Cuadros sinópticos ● Funciones

4 Ayuda de funciones ● Paquete debian/ubuntu/...: manpages-dev ● Comandos desde la shell: – apropos – man nombre_funcion – man 2 nombre_funcion – man 3 nombre_funcion

5 Cuadros sinópticos ● Tabla de funciones de gestión de streams en stdio.h Funciones de E/S mediante streams

6 Cuadros sinópticos ● Características comúnes a las funciones indicadas: – Funcionan con buffers de entrada y salida, y no los limpian previamente. Tiene que ver con la espera a que esté el buffer lleno (en salida se mejora el rendimiento; en el caso de un buffer de entrada, se puede editar). Los buffers pueden ser de tres tipos: completo, de línea (ej. las de stdin) o nulo. – En el caso de las funciones que leen de la entrada estándar, se hace eco a la pantalla si no hay redirección a fichero. – Todas las indicadas son estándar, y existen tanto en GNU/Linux como en Ms DOS/Windows. – Hay otras funciones no estándares, dependientes de S.O. y que operan sobre la terminal (no sobre streams de E/S). Ej. en el caso de Ms, se definen en conio.h las siguientes: getche, getch, putch. Su comportamiento difiere según hagan o no eco, etc. ● Sobre un fichero se pueden mezclar operaciones de texto y binario. Ej. primero hacer un fscanf y después un fread ● Regla nemotécnica para ubicación de parámetro FILE * en las declaraciones: siempre es el último parámetro excepto en fprintf y fscanf donde es el primero Funciones de streams

7 Funciones ● void *calloc (size_t num_elem, size_t tam_bytes); – malloc.h, stdlib.h – Reserva dinámica de memoria de num_elem x tam_bytes – Valor devuelto: puntero a la memoria asignada, o NULL si la petición falla ● void clearerr( FILE *stream); – stdio.h – Limpia los indicadores de fin de fichero y error para un stream concreto

8 Funciones ● int fclose (FILE *stream); – stdio.h – Cerrar stream – Valor de retorno: en caso de éxito 0, y si error -1 ● int feof (FILE *stream); – stdio.h – Indicador de fin de fichero – Valor de retorno: en caso de no haberse intentado leer o escribir al final del fichero devuelve 0

9 Funciones ● int ferror (FILE *stream); – stdio.h – Indicador de error – Valor de retorno: devuelve el último código de error correspondiente a una operación de streams sobre un stream concreto, o 0 si no lo ha habido. ● int fflush (FILE *stream); – stdio.h – Volcado de buffers de salida

10 Funciones ● int fgetc(FILE *stream); – stdio.h – Idem que getchar sobre un stream ● char *fgets(char *destino, int n, FILE *stream); – stdio.h – Lee desde un stream como mucho n-1 caracteres, o hasta encontrar un salto de línea (que lo mantiene) o fin de fichero – Añade un '\0' al final – Valor de retorno: s en caso de éxito, y NULL en caso de error o si se llega al final del stream

11 Funciones ● FILE *fopen (char *nomfich, char *modo); – stdio.h – Abrir stream. Parámetro modo: - modo puede incluir la letra 'b' como carácter final o entre dos cualesquiera por compatibilidad con ANSI C, pero en los sistemas POSIX (GNU/Linux,...) no tiene efecto - Si se abre con +, hay que sincronizar buffers entre operaciones: para leer después de escribir, llamar antes a fflush o a una función de posicionamiento (fseek,fsetpos,rewind). Para escribir tras leer, hacer un reposicionamiento, a no ser que sea al final del fichero – Valor de retorno: en caso de error, devuelve NULL

12 Funciones ● int fprintf(FILE *stream, const char *formato,...); – stdio.h – Idem que printf sobre un stream ● void __fpurge(FILE *stream); – stdio_ext.h – Volcado de buffers de entrada – No es estándar: Sólo en GNU/Linux

13 Funciones ● int fputc(int caracter, FILE *stream); – stdio.h – Idem que putchar sobre un stream ● int fputs(const char *origen, FILE *stream); – stdio.h – Idem que puts sobre un stream – No añade '\n'

14 Funciones ● size_t fread( void *ptr, size_t tam_bytes, size_t num_elem, FILE *stream); – stdio.h – Lectura de elementos de memoria – Valor de retorno: nº de elementos (no de caracteres) leídos correctamente. Si ocurre un error o se llega al fin-de-fichero, el valor devuelto es un nº menor del esperado (o cero). fread no distingue entre fin-de-fichero y error, así que quien llame a esta función debe emplear feof y ferror para determinar qué ha ocurrido. ● void free (void * ptr); – malloc.h, stdlib.h – Liberación de memoria reservada dinámicamente

15 Funciones ● FILE *freopen(char *nomfich, char *modo, FILE *stream); – stdio.h – Redireccionar un stream: se abre el fichero nomfich y le asocia el stream __stream. Éste se cierra si existe. – El argumento modo se emplea igual que en la función fopen. – Un uso típico es cambiar el fichero asociado con un stream estándar (stderr, stdin, o stdout). – Valor de retorno: en caso de error, devuelve NULL

16 Funciones ● int fscanf(FILE *stream, const char *formato,...); – stdio.h – Idem que scanf aplicado sobre un stream ● int fseek (FILE *stream, long int offset, int origen); – stdio.h – Desplazar indicador de posición un offset según origen: ● SEEK_SET: relativo al comienzo del fichero (offset>0) ● SEEK_CUR: relativo a la posición actual (offset positivo o negativo) ● SEEK_END: relativo al final del fichero (offset<0) – Valor de retorno: en caso de éxito 0, y si error -1

17 Funciones ● long int ftell (FILE *stream); – stdio.h – Obtener el valor actual del indicador de posición de un stream – Valor de retorno: en caso de error -1

18 Funciones ● size_t fwrite (const void *ptr, size_t tam_bytes, size_t num_elem, FILE *stream); – stdio.h – Escritura de elementos de memoria – Valor de retorno: nº de elementos (no de caracteres) escritos correctamente. Si ocurre un error o se llega al fin-de-fichero, el valor devuelto es un nº menor del esperado (o cero).

19 Funciones ● int getchar(void); – stdio.h – Lee de stdin un carácter – Valor de retorno: carácter leído como un unsigned char modelado a un int o EOF al llegar al final de la entrada o en caso de error. ● char *gets (char *destino); – stdio.h – Lee de stdin hasta encontrar un salto de línea (que sustituye por '\0') o EOF – No controla desbordamiento de buffer – Valor de retorno: s en caso de éxito, y NULL en caso de error o si se llega al final del stream

20 Funciones ● void *malloc (size_t tam_bytes); – malloc.h, stdlib.h – Reserva dinámica de memoria de tam_bytes – Valor de retorno: puntero a la memoria asignada, o NULL si la petición falla

21 Funciones ● int printf (const char *formato,...); – stdio.h – Saca por stdout los argumentos formateándolos según una cadena de control (ver cuadro) – Muy importante: ha de haber correspondencia entre: ● El nº de parámetros y el nº de % ● Los tipos de los argumentos y los tipos indicados con % – Valor de retorno: nº de caracteres impresos. Si se encuentra un error de salida, se devuelve un valor negativo.

22 Funciones – Cadena de control: “%-+ 0w.pmc” (obligatorio: c)

23 Funciones ● int putchar(int caracter); – stdio.h – Saca por stdout un carácter – Valor de retorno: el carácter escrito como un unsigned char modelado a un int o EOF en caso de error ● int puts (char *cadena); – stdio.h – Saca por stdout una cadena – Añade '\n' – Valor de retorno: número no negativo si acaban bien, o EOF en caso de error

24 Funciones ● void *realloc (void *ptr, size_t tam_bytes); – malloc.h, stdlib.h – Reserva dinámica de memoria de tam_bytes a partir de una zona ya reservada – Valor de retorno: puntero a la memoria asignada, o NULL si la petición falla

25 Funciones ● int remove(const char *pathname); – stdio.h – Borrado de fichero – Valor de retorno: en caso de éxito 0, y si error -1 ● int rename(const char *oldpath, const char *newpath); – stdio.h – Renombrar fichero – Valor de retorno: en caso de éxito 0, y si error -1

26 Funciones ● void rewind (FILE *stream); – stdio.h – Desplazar el cursor del fichero al inicio. – Es equivalente a fseek(stream, 0L, SEEK_SET).

27 Funciones ● int scanf (const char *formato,...); – stdio.h – Lee de stdin e intenta convertir a tipos según según el formato indicado por una cadena de control. El análisis acaba cuando un carácter de la entrada no concuerda con un carácter del formato, o bien cuando una conversión no puede realizarse. En este caso el resto de caracteres queda en el buffer de entrada. – Separador de argumentos en la cadena de control: ● En la cadena de control se interpretan igual el espacio en blanco, el tabulador y el salto de línea. Uno de éstos concuerda con cualquier cantidad de espacio en blanco, incluyendo ninguna, en la entrada. ● Se puede emplear otro carácter. – No coge el carácter de fin de línea sino que éste se elimina – No controla desbordamiento de buffer para el caso de %s

28 Funciones – Cadena de control: “wmc” (obligatorio: c) – En el caso de introducir números seguidos, puede inducir a confusión. Ej.”%d%f” si se mete hay varias posibilidades – Valor de retorno: nº de conversiones exitosas o el valor EOF si ha habido un fallo de entrada antes de ninguna conversión

29 Funciones ● int sprintf (char *destino, const char *formato,...); – stdio.h – Idem que printf sobre una cadena – Añade '\0' al final ● int sscanf (char *destino, const char *formato,...); – stdio.h – Idem que scanf sobre una cadena

30 Funciones ● char *strcat (char *destino, char *cadena); – string.h – Concatenación de una cadena detrás de otra – No controla desbordamiento de buffer – Valor de retorno: puntero a la cadena destino ● char *strchr (char *cadena, int caracter); – string.h – Búsqueda de un carácter en una cadena, de izda. a dcha. – Valor de retorno: puntero al elemento de la cadena con el carácter coincidente, o NULL si el carácter no se ha encontrado

31 Funciones ● int strcmp (char *cadena1, char *cadena2); – string.h – Comparación de dos cadenas – Valor de retorno: entero menor que, igual a, o mayor que cero si s1 se encuentra que es, respectivamente, menor que, igual a, o mayor que s2 ● char *strcpy (char *destino, char *origen); – string.h – Copia de una cadena a otra – No controla desbordamiento de buffer – Valor de retorno: puntero a la cadena destino

32 Funciones ● size_t strlen (char *cadena); – string.h – Longitud de una cadena (nº de caracteres) – Valor de retorno: nº caracteres ● char *strrchr (char *cadena, int caracter); – string.h – Búsqueda de un carácter en una cadena, de dcha. a izda. ● char *strstr (char *cadena1, char *cadena2); – string.h – Búsqueda de cadena cadena2 en cadena1, de izda a dcha – Valor de retorno: puntero a la aparición, o NULL si no se encuentra