函式 posix memalign 使用說明

2021-08-20 08:52:58 字數 1021 閱讀 3773

簡介:posix 標明了通過malloc( ), calloc( ), 和 realloc( ) 返回的位址對於任何的c型別來說都是對齊的。在linux中,這些函式返回的位址在32位系統是以8位元組為邊界對齊,在64位系統是以16位元組為邊界對齊的。有時候,對於更大的邊界,例如頁面,程式設計師需要動態的對齊。雖然動機是多種多樣的,但最常見的是直接塊i/o的快取的對齊或者其它的軟體對硬體的互動,因此,posix 1003.1d提供乙個叫做posix_memalign( )的函式。

功能:返回size位元組的動態記憶體,預對齊記憶體的分配。posix_memalign函式的用法類似於malloc的用法,由posix_memalign分配的記憶體空間,需要由free釋放。

標頭檔案:#include

函式原型:int posix_memalign (void **memptr,

size_t alignment,

size_t size);

引數

*      memptr           分配好的記憶體空間的首位址

*      alignment        對齊邊界,linux中,32位系統是8位元組,64位系統是16位元組

*      size                  指定分配size位元組大小的記憶體

返回值:呼叫posix_memalign( )成功時會返回size位元組的動態記憶體,並且這塊記憶體的位址是alignment的倍數。引數alignment必須是2的冪,還是void指標的大小的倍數。返回的記憶體塊的位址放在了memptr裡面,函式返回值是0。

呼叫失敗時,沒有記憶體會被分配,memptr的值沒有被定義,返回如下錯誤碼之一:

einval:引數不是2的冪,或者不是void指標的倍數。

enomem:沒有足夠的記憶體去滿足函式的請求。

要注意的是,對於這個函式,errno不會被設定,只能通過返回值得到。

函式基礎 匿名函式,函式,箭頭函式,立即執行函式

doctype html html lang en head meta charset utf 8 meta name viewport content width device width,initial scale 1.0 title document title head body body ...

函式 常見函式

def fib n if n 1 return 1if n 2 return 1return fib n 1 fib n 2 def hannuo n,a,b,c n 表示有n個盤子 a 代表第乙個塔,開始的塔 b 代表第二個塔,過渡塔 c 代表第三個塔,目標塔 d.在 中n 2,這個分支可以不要,...

Lua 函式 函式

在lua中,函式是一種對語句和表示式進行抽象的主要機制。函式既可以完成某項特定的任務,也可以只做一些計算並返回結果。lua具有一項非常於總不同的特徵,允許函式返回多個結果 s,e string.find hello lua users lua print s,e 7 9 以lua編寫的函式同樣可以返...