aio_init是一則函式,GNU 定義的 aio_init() 函式允許調用微調 glibc POSIX AIO 實現。對這個函式的使用是可選的,但卻是更高效的,它必須在調用其它 POSIX AIO API 函式之前調用。
頭檔案,函式原型,說明,
頭檔案
#define _GNU_SOURCE /* 參考 feature_test_macros(7) */
#include <aio.h>
函式原型
void aio_init(const struct aioinit *init);
說明
微調信息通過其參數 init 指向的快取區提供。這個快取區的結構有如下形式:
struct aioinit {
int aio_threads; /* 執行緒最大個數 */
int aio_num; /* 預期的並發請求數 */
int aio_locks; /* 未使用 */
int aio_usedba; /* 未使用 */
int aio_debug; /* 未使用 */
int aio_numusers; /* 未使用 */
int aio_idle_time; /* 在空閒執行緒終止之前的秒數 (從 glibc 2.2) */
int aio_reserved;
};
aioinit 結構中域的作用:
aio_threads
這個域指明實現中使用的工作執行緒個數上限。如果未決的 I/O 操作超過這個限制,這個操作將會加入佇列直到有工作執行緒空閒並過來執行它。如果指定的這個值小於 1,那么值 1 被使用。默認值是 20。
aio_num
這個值指明調用者預期的可以加入佇列同時並發進行的 I/O 請求上限。如果這個域的指定值小於 32,它將被設定為 32。默認值是 64。
aio_idle_time
這個域指明工作執行緒在完成前一個請求之後和下一個請求到來之前等待的秒數,如果達到這個秒數執行緒將終止。默認值是 1。
這個函式是 GNU 擴展。從 glibc 2.1 開始有效。