PDF de programación - Biblioteca de funciones (ANSI C)

Imágen de pdf Biblioteca de funciones (ANSI C)

Biblioteca de funciones (ANSI C)gráfica de visualizaciones

Publicado el 19 de Junio del 2020
1.218 visualizaciones desde el 19 de Junio del 2020
250,0 KB
73 paginas
Creado hace 18a (21/02/2006)
BIBLIOTECA DE FUNCIONES (ANSI C)

Apéndice W5

Esta parte es una revisión breve de la biblioteca de rutinas (funciones) y archivos include, en
tiempo de ejecución. La biblioteca de C es un conjunto funciones y macros preparadas para
utilizar y diseñadas para su uso en programas C. La biblioteca en tiempo de ejecución hace la
programación más fácil, ya que incluye una amplia variedad de tareas tales como E/S de bajo y
alto nivel, manipulación de cadenas y archivos, asignación de memoria, control de procesos,
cálculos matemáticos, etc.

A.1. PLANTILLA REFERENCIA DE ENTRADAS

Las entradas de las diferentes funciones y macros han sido normalizadas para facilidad de
manejo del lector. Las rutinas han sido clasificadas por categorías. Al comienzo de cada
categoría se hace una breve descripción de su cometido principal y se presenta una tabla con las
funciones que contiene cada categoría por orden alfabético, así como una breve síntesis de su
descripción o propósito. A continuación, por orden alfabético, se describen las rutinas de
acuerdo al siguiente modelo para cada entrada.

A.2. FUNCIONES DE ASIGNACIÓN DE MEMORIA

C almacena información en la memoria principal de la computadora por dos métodos. El
primero utiliza variables globales y locales (incluyendo arrays, cadenas y estructura); en este
caso, el almacenamiento o longitudes fija. Para cambiar el tamaño de arrays y cadenas de
caracteres se debe editar el archivo fuente y recompilar su programa. Esta información se
almacena en la pila (stack). El segundo método de almacenar información es asignar memoria a
medida que el programa lo requiera y liberar esta memoria cuando ya no se necesita; esta acción
permite utilizar la misma memoria para colas diferentes en un tiempo distinto. Este proceso de
asignar memoria se denomina asignación dinámica de memoria.
Por omisión, cada vez que se ejecuta un programa, DOS establece un segmento de 64 Kb
denominado segmento de código, que contiene su código programa. DOS establece también un
segmento de 64 Kb denominado segmento de datos. Su programa puede tener múltiples
segmentos de datos y códigos.
El segmento de datos se divide en tres regiones: datos del programa (variables estáticas y
globales), pila –stack– (variables locales y argumentos) y montón o montículo –heap.

Segmento de datos

Después de asignar partes del segmento de datos a variables estáticas y globales y a la pila, el
compilador dedica el resto del segmento de datos al montículo o heap.

C contiene un gran número de funciones para asignación dinámica de memoria, que realizan
una gran variedad de tareas: asignar y liberar memoria del montículo y de la pila, obtener
información de bloques de memoria, etc.

allocmen #include <dos.h>

1

int allocmen(unsigned t, unsigned * seg);

La función allocmen() establece seg para apuntar a un segmento asignado de memoria de t
párrafos (1 párrafo = 16 bytes) de largo. Si hay éxito se devuelve –1, si hay error (falta
memoria), allocmen() devuelve el tamaño en párrafos del mayor bloque disponible.

if(allocmen(size, &segadd)!= -1)
printf(“Error asignación memoria \n”);

Funciones relacionadas: falloc frremem, malloc, setblock.

brk #include <alloc.h>

int brk( void* a)

La función brk permite modificar el «valor break» de un programa. El valor break es la
dirección de la primera posición más allá del segmento de datos de un programa. Si hay éxito se
devuelve 0; en caso contrario, -1, y la variable global errnoc toma el valor ENOMEN
(insuficiente memoria).

it(brk(nuevo_break) == -1)
perror(“brk ha fallado”);

Funciones relacionadas: free, farmalloc, malloc, sbrk.

calloc #include <stdlib>
#include <alloc.h>

int *calloc(size_t n, size_t s);

Asigna memoria principal (un bloque de tamaño n.s). El bloque se borra (limpia) a 0. Si se
desea asignar un bloque mayor que 64 Kb, se debe utilizar farcalloc. Devuelve un puntero al
bloque recién asignado. Si no existe bastante espacio para el nuevo bloque o bien n o s es 0,
calloc devuelve nulo.

long *buffer
buffer=(long *) calloc(40, sizeof(long));

Funciones relacionadas free, malloc.

farcalloc #include <alloc.h>

void far *farcalloc(unsigned long n, unsigned long s);

Esta función asigna n piezas de tamaño s y las pone a 0. Un puntero al principio de la memoria
asignada se devuelve si farcalloc() tiene éxito; en caso contrario se devuelve NULL.

if(array_grande=farcalloc(20000L, sizeof (int)) “” NULL) printf(“Fallo
en asignación de memoria\n”);
Funciones relacionadas: calloc, farfree, farmalloc, malloc.

2

farmalloc #include <alloc.h>

void far *farmalloc(unsigned long n);

Asigna n bytes de memoria far. La cantidad completa de memoria encima de la pila está
disponible para asignación por farmalloc. El tamaño del bloque puede exceder de 64 Kb.

if(bloquegrande = farmalloc(80000L) == NULL
printf(“Asignación fallada\n”);

Funciones relacionadas: calloc, farfree, farcalloc, malloc.

farrealloc #include <alloc.h>

void far *farrealloc(void far *b, unsigned long n)

Se utiliza para reasignar (ajustar el tamaño de un bloque de memoria b, al cual se ha asignado
una longitud de n bytes.

if(bloquegrande = farrealloc(bloquegrande, 120000L)) = NULL
printf(“Fallo reasignación memoria\n”);

Funciones relacionadas: calloc, farcalloc, farfree, malloc.

free #include <alloc.h>
#include <stdlib.h>

vid free(void *dir_memoria);

La función free() libera un bloque de memoria. El argumento dir_memoria apunta a un
bloque de memoria previamente asignado a través de una llamada a calloc, malloc o
realloc. Después de la llamada el bloque libre está disponible para asignación.

char *cad;
/* asignar memoria para cadena */
cad = (char *) malloc(50);

...
free(cad); /* liberar memoria */

Funciones relacionadas: calloc, malloc, realloc

malloc #include <stdlib.h>
#include <alloc.h>

void *malloc (size_t n);

Asigna memoria a bloques en el montículo. Devuelve un puntero, que es la dirección inicial de
la memoria asignada.

cadena = malloc(MAX_CHR)

3

Funciones relacionadas: calloc, free, realloc.

realloc #include <alloc.h>
#include <stdlib.h>

void *realloc(void *b, size_t n);

Ajusta el tamaño de un bloque de memoria b asignado por malloc o calloc a un tamaño de
n bytes. Devuelve un puntero void al bloque de memoria reasignado.

Nuevo_buffer = realloc(viejo_buffer, long+100);

Funciones relacionadas: calloc, free, malloc.

sbrk #include <alloc.h>

void *sbr(int n);

Se utiliza sbrk para indicar el valor break de un proceso. El valor break es la dirección del
primer byte disponible en el segmento de datos por omisión, más allá del segmento de datos que
está siendo utilizado por los datos en el proceso.

sbrk(500);

Funciones relacionadas: brk

setblock #include <alloc.h>

int setblock(unsigned seg, unsigned n);

Ajusta el tamaño de un bloque de memoria asignado anteriormente por allocmen. Esta función
llama a la función 4Ah de DOS para ampliar el tamaño de un bloque de memoria previamente
asignado por allocmen. En
la función equivalente es
_dos_setblock.

las versiones Visual C++

A.3. FUNCIONES DE BÚSQUEDA Y ORDENACIÓN

La mayoría de los programas requieren casi siempre alguna operación de clasificación y
búsqueda de elementos en arrays. C incluye diferentes funciones que realizan estas tareas.

bseaech() #include <stdlib.h>

void bsearch(const void*k, const void *b, size_t n, size_t a,
int(*comparar)(const void*, (const void*));

La función bsearch realiza una búsqueda binaria en un array ordenado b, de n elementos, cada
uno de a bytes de tamaño. El argumento k apunta al valor que se está buscando. bearch
devuelve un puntero (la dirección) a la primera aparición del valor k en el array. Si no se
encuentra el valor, bsearch devuelve o.

4

El argumento comparar proporciona la dirección de una rutina que aceptará dos argumentos
elem1 y elem2, cada uno un puntero a un elemento del array. La función comparar compara
cada uno de los elementos apuntados y devuelve un valor de acuerdo con la tabla siguiente:

Valor devuelto
Negativo
Cero
Positivo

Condición
Primer elemento menor que el segundo (elem1) (elem2)
Los dos elementos son idénticos.
Primer elemento mayor que el segundo.

La búsqueda binaria requiere que el array esté ordenado, por lo cual, caso de que no esté
ordenado el array, se puede utilizar la función qsort para ordenar el array antes de llamar a
bsearch.

Funciones relacionadas: lfind, lsearch, qsort.

lfind #include <stdlib.h>

void * lfind(const void k, const void*b, size_t *num, size_t
anchura int(*comparar)(const void*, const void*));

La función lfind() realiza una búsqueda lineal de valor de k (clave) en un array d
  • Links de descarga
http://lwp-l.com/pdf17796

Comentarios de: Biblioteca de funciones (ANSI C) (0)


No hay comentarios
 

Comentar...

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios...
CerrarCerrar
CerrarCerrar
Cerrar

Tienes que ser un usuario registrado para poder insertar imágenes, archivos y/o videos.

Puedes registrarte o validarte desde aquí.

Codigo
Negrita
Subrayado
Tachado
Cursiva
Insertar enlace
Imagen externa
Emoticon
Tabular
Centrar
Titulo
Linea
Disminuir
Aumentar
Vista preliminar
sonreir
dientes
lengua
guiño
enfadado
confundido
llorar
avergonzado
sorprendido
triste
sol
estrella
jarra
camara
taza de cafe
email
beso
bombilla
amor
mal
bien
Es necesario revisar y aceptar las políticas de privacidad