open,ioctl,mmap函式解釋

2021-07-09 11:43:13 字數 763 閱讀 8722

open("/dev/binder", o_rdwr);  開啟"/dev/binder"驅動檔案

int ioctl(int fd, ind cmd, …); 

ioctl是裝置驅動程式中對裝置的i/o通道進行管理的函式

。所謂對i/o通道進行管理,就是對裝置的一些特性進行控制,例如串列埠的傳輸波特率、馬達的轉速等等。在android的binder驅動中就指定了最大執行緒數的命令:最大15個執行緒

static int open_driver()

if (result != 0 || vers != binder_current_protocol_version)

size_t maxthreads = 15;

result = ioctl(fd, binder_set_max_threads, &maxthreads);

if (result == -1)

} else

return fd;

}

mmap:

mmap系統呼叫使得程序之間通過對映同乙個普通檔案實現共享記憶體。普通檔案被對映到程序位址空間後,程序可以像訪問普通記憶體一樣對檔案進行訪問,不必再呼叫read(),write()等操作。

mvmstart = mmap(0, binder_vm_size, prot_read, map_private | map_noreserve, mdriverfd, 0);

返回該程序對驅動檔案對映的位址。

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

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編寫的函式同樣可以返...