linux memalign、valloc函数
生活随笔
收集整理的這篇文章主要介紹了
linux memalign、valloc函数
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
? ? 在GNU系統中,malloc或realloc返回的內存塊地址都是8的倍數(如果是64位系統,則為16的倍數)。如果你需要更大的粒度,請使用
memalign
或valloc。這些函數在頭文件“stdlib.h”中聲明。
????在GNU庫中,可以使用函數free釋放 memalign 和valloc返回的內存塊。但無法在BSD系統中使用,而且BSD系統中并未提供釋放這樣的內存塊的途徑。
????函數:void?*? memalign ?(size_t?boundary,?size_t?size)?
????函數 memalign 將分配一個由size指定大小,地址是boundary的倍數的內存塊。參數boundary必須是2的冪!函數 memalign 可以分配較大的內存塊,并且可以為返回的地址指定粒度。
????函數:void?*?valloc?(size_t?size)?
????使用函數valloc與使用函數 memalign 類似,函數valloc的內部實現里,使用頁的大小作為對齊長度,使用memalign來分配內存。它的實現如下所示:?
????void?*
????valloc?(size_t?size)
????{
??????return? memalign ?(getpagesize?(),?size);
????}
????在GNU庫中,可以使用函數free釋放 memalign 和valloc返回的內存塊。但無法在BSD系統中使用,而且BSD系統中并未提供釋放這樣的內存塊的途徑。
????函數:void?*? memalign ?(size_t?boundary,?size_t?size)?
????函數 memalign 將分配一個由size指定大小,地址是boundary的倍數的內存塊。參數boundary必須是2的冪!函數 memalign 可以分配較大的內存塊,并且可以為返回的地址指定粒度。
????函數:void?*?valloc?(size_t?size)?
????使用函數valloc與使用函數 memalign 類似,函數valloc的內部實現里,使用頁的大小作為對齊長度,使用memalign來分配內存。它的實現如下所示:?
????void?*
????valloc?(size_t?size)
????{
??????return? memalign ?(getpagesize?(),?size);
????}
總結
以上是生活随笔為你收集整理的linux memalign、valloc函数的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 如何用原型体现你的专业度?
- 下一篇: 给大家介绍一个好用的数据分析框架