C Programer  - 讨论区

标题:APR 初始化与内存分配

2013年12月21日 星期六 19:12

APR 作为一个完整的程序运行时库,在使用之前必须进行初始化,再使用结束后也必须进行清理结束的操作。

APR 提供了一套内存管理机制,所有APR内部的模块方法都使用了此机制,在应用程序中,也非常鼓励使用这套机制,此机制可以方便内存管理,减少内存泄露的发生机会,在一定程度上也可以提升内存分配和使用效率,减少内存碎片产生的几率。

下面是一个示例程序,演示了如何初始化和结束APR运行时库,如何使用内存池机制管理内存。

#include <apr.h>
#include <apr_pools.h>
#include <apr_strings.h>
#include <stdio.h>

int main(int argc,char **argv) {
    apr_initialize();
    apr_pool_t *pool;
    apr_pool_create(&pool,NULL);

    char *str=apr_itoa(pool,1141100895);
    printf("%s\n",str);

    apr_pool_destroy(pool);
    apr_terminate();
    return 0;
}

 

配套的Makefile:

SOURCES = apr.c
EXECUTABLE = apr

CC = gcc
CFLAGS = -c -Wall `pkg-config --cflags apr-1`
LDFLAGS = `pkg-config --libs apr-1`
OBJECTS = $(SOURCES:.c=.o)

all: $(SOURCES) $(EXECUTABLE)
		
$(EXECUTABLE): $(OBJECTS) 
	$(CC) $(LDFLAGS) $(OBJECTS) -o $@

.c.o:
	$(CC) $(CFLAGS) $< -o $@

clean:
	rm -f *.o $(EXECUTABLE) 

 

参考文档:

http://apr.apache.org/docs/apr/1.3/group__apr__library.html
http://apr.apache.org/docs/apr/1.3/group__apr__pools.html

 

如下红色区域有误,请重新填写。

    你的回复:

    请 登录 后回复。还没有在Zeuux哲思注册吗?现在 注册 !

    Zeuux © 2024

    京ICP备05028076号