server-api-posix_memalign

原型

用于预对齐内存的分配

1
2
3
4
5
6
7
8
9
10
11
// memptr:要分配内存的地址指针
// alignment:内存对齐的块大小
// size:要分配的内存大小
//
// return:
// 成功时,返回0;失败返回EINVAL(参数不是2的幂,或者不是void指针的倍数。),ENOMEM(没有足够的内存去满足函数的请求。)
//
// 附加说明:
// 要注意的是,对于这个函数,errno不会被设置,只能通过返回值得到。
//
int posix_memalign(void **memptr, size_t alignment, size_t size);

使用参考

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <stdio.h>
#include <unistd.h>
#include <stdlib.h>

int main()
{
char *buf;
int ret;

ret = posix_memalign ((void**)&buf, 256, 1024);
if (ret) {
fprintf (stderr, "posix_memalign: %s\n", strerror (ret));
return -1;
}

free (buf);
return 0;
}