Format
#include <stdlib.h>
_C_Quickpool_Debug_T _C_Quickpool_Debug(_C_Quickpool_Debug_T *newval);
Language Level: Extended
Threadsafe: Yes.
Description
The _C_Quickpool_Debug() function modifies Quick Pool memory manager characteristics. Environment variables can also be used to configure this support (reference section Environment Variables).
The parameters for _C_Quickpool_Debug() are as follows:
If the value of newval is NULL, a structure containing the current Quick Pool memory manager characteristics is returned and none of the Quick Pool memory manager characteristics are modified.
Return Value
The return value is a structure that contains the _C_Quickpool_Debug() values before the changes requested by the current function call are made. This value can be used on a later call to restore the _C_Quickpool_Debug() values to a prior state.
Example that uses _C_Quickpool_Debug()
The following example uses _C_Quickpool_Debug() with the _C_INIT_MALLOC and _C_INIT_FREE flags to initialize memory on the malloc and free functions.
#include <stdlib.h>
#include <stdio.h>
int main(void) {
char *p;
char *mtest = "AAAAAAAAAA";
char *ftest = "BBBBBBBBBB";
unsigned int cell_sizes[2] = { 16, 64 };
unsigned int cells_per_extent[2] = { 16, 16 };
_C_Quickpool_Debug_T dbgVals = { _C_INIT_MALLOC | _C_INIT_FREE, 'A', 'B' };
if (_C_Quickpool_Init(2, cell_sizes, cells_per_extent)) {
printf("Error initializing Quick Pool memory manager.\n");
return -1;
}
_C_Quickpool_Debug(&dbgVals);
if ((p = malloc(10)) == NULL) {
printf("Error during malloc.\n");
return -2;
}
if (memcmp(p, mtest, 10)) {
printf("malloc test failed\n");
}
free(p);
if (memcmp(p, ftest, 10)) {
printf("free test failed\n");
}
printf("Test successful!\n");
return 0;
}
/*****************Output should be similar to:*****************
Test successful!
*******************************************************************/
Related Information