Publicado el 2 de Febrero del 2021
1.358 visualizaciones desde el 2 de Febrero del 2021
404,7 KB
50 paginas
Creado hace 18a (16/05/2006)
) 2 , 1 + - .
* 1 * 1 6 - + ) , - . 7 + 1 - 5 - 5 6 , ) 4
) 5 1 1 5 + ; * 4 ) , + #
+6-1,
. 2=JE=HABAHA?E=@AAJH=@=I
. .K?EAI@A=IEC=?E@AAHE=
.! .K?EAI@A>IGKA@=OH@A=?E
." .K?EAI@A?=@A=
.# .K?EAI@A?=IEBE?=?E@A?=H=?JAHAI
.$ .K?EAI@A?=A@=HEBA?D=ODH=
.% .K?EAI@A?JH@A@EHA?JHEI
Esta parte es una revisión breve de la biblioteca de rutinas (funciones) y
archivos include, en tiempo de ejecución. La biblioteca de Borland C++ es
un conjunto de más de 450 funciones y macros preparadas para utilizar y
diseñadas para su uso en programas C++. La biblioteca en tiempo de ejecu-
ció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 archi-
vos, asignación de memoria, control de procesos, cálculos matemáticos, etc.
Las rutinas de Borland C++ están contenidas en los archivos de bibliote-
ca Cx.LIB, CPx.LIB, MATHx.LIB y GRAPHICS.LIB. Borland C++ imple-
menta la versión estándar última de ANSI C, que entre otras cosas recomien-
da el uso de los prototipos de función en las rutinas de sus programas C++.
Este apéndice describe alfabeticamente funciones de la biblioteca Bor-
land C++ y contiene todas las funciones incluidas en ANSI/ISO C++.
. 2)61)4-.-4-+1),--64),)5
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 (en general, se ha procurado respetar la clasificación dada por
Borland y ANSI, pero con una adaptación más próxima al uso diario del
programador /.
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 des-
cripción o propósito. A continuación, por orden alfabético, se describen las
rutinas de acuerdo al siguiente modelo para cada entrada.
.& .K?EAI@A?JH@AFH?AII
.' .K?EAI@A?LAHIE@A@=JI
. .K?EAI@AAJH=@=I=E@=
. .K?EAI@ACAIJE@A=H?DELI
. .K?EAI=JAJE?=I
.! .K?EAI@A=EFK=?E@A>GKAI@AAHE=>KBBAHI
." .K?EAI@AFHAIAJ=?E@AJANJ
. .7+1-5,-)51/)+1,--41)
Borland C++ almacena información en la memoria principal de la compu-
tadora 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 informa-
ció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
nombre función
archivo de cabecera
• strrev
char *strrev(char *cad)
sintaxis
#include <string.h>
Descripción
Propósito y breve descripción de cómo y dónde se utiliza la función.
Ejemplo
Una o más instrucciones o programas sencillos, donde se muestra la explicación
real de la función.
Funciones relacionadas: strcpy, strncpy.
Funciones relacionadas con la función descrita.
$$
24/4))+1-+)/4165-5647+674)5;*-65
memoria para colas diferentes en un tiempo distinto. Este proceso de asig-
nar 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ódi-
go 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 argu-
mentos) y montón o montículo —heap.
5ACAJ@A@=JI
Montículo
(heap)
Pila
(stack)
Datos del programa
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.
Borland 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.
datos de un programa. Si hay éxito se devuelve 0; en caso contrario, –1, y la
variable global errnoctoma el valor ENOMEN (insuficiente memoria).
it(brk(nuevo_break) == -1)
perror(“brk ha fallado”);
Funciones relacionadas: free, farmalloc, malloc, sbrk.
calloc
#include <stdlib.h>
#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.
allocmen
#include <dos.h>
coreleft
#include <alloc.h>
int allocmen(unsigned t, unsigned * seg);
La función allocmen() establece seg para apuntar a un segmento asig-
nado de memoria de tpá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.
// modelos small, tiny, medium
unsigned coreleft(void)
unsigned long coreleft(void); // en otros modelos de memoria
Determina la cantidad de memoria no utilizada. El valor devuelto
depende del modelo de memoria.
Mem_avail = coreleft();
Funciones relacionadas: calloc, farcoreleft, malloc.
brk
int brk( void* a)
#include <alloc.h>
La función brk permite modificar el «valor break» de un programa. El
valor breakes la dirección de la primera posición más allá del segmento de
farcalloc
#include <alloc.h>
void far *farcalloc(unsigned long n, unsigned long s);
Esta función asigna npiezas de tamaño sy las pone a 0. Un puntero al
principio de la memoria asignada se devuelve si farcalloc() tiene éxito;
en caso contrario se devuelve NULL.
*1*16-+),-.7+1-5-56,)4)5115+;*4),+#
$%
if(array_grande=farcalloc(20000L, sizeof (int)) “” NULL)
printf (“Fallo en asignación de memoria\n”);
Funciones relacionadas: farheapfillfree, farheapwalk, heapfill-
free, heapcheckfree, heapwalk.
Funciones relacionadas: calloc, farfree, farmalloc, malloc.
farcoreleft
#include <alloc.h>
int farheapchecknode(void *bloque);
unsigned long farcoreleft(void);
Verifica la consistencia de un solo bloque en el montículo (heap) far.
Determina el número total de bytes disponibles en el sistema.
estadoheap = farheapchecknode(arraygrande);
farheapchecknode
#include <alloc.h>
memoria_total_disponible = farcoreleft();
Funciones relacionadas: coreleft, farcalloc, farmalloc.
farheapfillfree
#include <alloc.h>
int farheapfillfree(unsigned int f);
farfree
#include <alloc.h>
Rellena todos los bloques libres del montículo farcon un valor constante.
void farfree(void far *b);
Libera la memoria apuntada por b.
farfree(arraygrande);
estadoheap = farheapfillfree(´X´);
Funciones relacionadas: farheapcheckfree, farheapchecknode,
farheapwalk, heapfillfree, heapwalk.
Funciones relacionadas: farcalloc, farmalloc, farrealloc, free.
farheapwalk
#include <alloc.h>
farheapcheck
#include <alloc.h>
Obtiene información sobre las entradas en el montículo (heap) far.
int farheapwalk(struct farheapinfo *m);
int farheapcheck(void);
Verifica la consistencia del montículo (heap) far.
estadoheap = farheapcheck();
struct farheapinfo heap_entry;
estadopila = farheapwalk(&heap_entry);
farmalloc
#include <alloc.h>
Funciones relacionadas: farheapcheckfree, farheapchecknode,
farheapwalk, heapfillfree, heapwalk, heapcheck.
void far *farmalloc(unsigned long n);
farheapcheckfree
#include <alloc.h>
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.
int farheapcheckfree(unsigned int f);
Verifica la consistencia de los bloques libres en el montículo (heap) far.
if(bloquegrande = farmalloc(80000L) == NULL
printf(“Asignación fallada\n”);
estadoheap = farheapcheckfree(´F´);
Funciones relacionadas: calloc, farfree, farcalloc, malloc.
$&
24/4))+1-+)/4165-5647+674)5;*-65
farrealloc
#include <alloc.h>
heapcheckfree
#include <alloc.h>
void far *farrealloc(void far *b, unsigned long n)
int heapcheckfree(unsigned int f);
Se utiliza para reasignar (ajustar el tamaño de un bloque de memoria b,
al cual se ha asignado una longitud de nbytes).
if(bloquegrande = farrealloc(bloquegrande, 120000L)) = NULL
printf(“Fallo reasignación memoria\n”);
Funciones relacionadas: calloc, farcalloc, farfree, malloc.
Verifica la consistencia de los bloques libres en el montículo (heap).
estadoheap = heapcheckfree(´N´);
Funciones relacionadas: farheapcheckfree, heapfillfree, heapwalk.
heapchecknode
#include <alloc.h>
free
#include<alloc.h>
#include <stdlib.h>
int heapchecknode(void *n);
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 llama-
da el bloque libre está disponible para asignación.
Verifica la consistencia de un solo nodo (bloque de memoria). Verifica
Comentarios de: Biblioteca de funciones estándar ANSI/ISO C++ y Borland C++ 5.0 (0)
No hay comentarios