日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

length函数的头文件_Framebuffer 应用编程中涉及的 API 函数

發布時間:2025/3/11 编程问答 68 豆豆
生活随笔 收集整理的這篇文章主要介紹了 length函数的头文件_Framebuffer 应用编程中涉及的 API 函数 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

本節程序的目的是:打開 LCD 設備節點,獲取分辨率等參數,映射 Framebuffer,最后實現描點函數。
5.2.1 open 函數
在 Ubuntu 中執行“man 2 open”,可以看到 open 函數的說明:


頭文件:
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
函數原型:
int open(const char *pathname, int flags); int open(const char
*pathname, int flags, mode_t mode);
函數說明:
① pathname 表示打開文件的路徑;
② Flags 表示打開文件的方式,常用的有以下 6 種,
a. O_RDWR 表示可讀可寫方式打開;
b. O_RDONLY 表示只讀方式打開;
c. O_WRONLY 表示只寫方式打開;
d. O_APPEND 表示如果這個文件中本來是有內容的,則新寫入的內容會接續到原來內容的后面;
e. O_TRUNC 表示如果這個文件中本來是有內容的,則原來的內容會被丟棄,截斷;
f. O_CREAT 表示當前打開文件不存在,我們創建它并打開它,通常與 O_EXCL 結合使用,當沒有文件時
創建文件,有這個文件時會報錯提醒我們;
③ Mode 表示創建文件的權限,只有在 flags 中使用了 O_CREAT 時才有效,否則忽略。
④ 返回值:打開成功返回文件描述符,失敗將返回-1。
5.2.2 ioctl 函數
在 Ubuntu 中執行“man ioctl”,可以看到 ioctl 函數的說明:


頭文件:
#include <sys/ioctl.h>
函數原型:
int ioctl(int fd, unsigned long request, ...);
函數說明:
① fd 表示文件描述符;
② request 表示與驅動程序交互的命令,用不同的命令控制驅動程序輸出我們需要的數據;
③ … 表示可變參數 arg,根據 request 命令,設備驅動程序返回輸出的數據。
④ 返回值:打開成功返回文件描述符,失敗將返回-1。
ioctl 的作用非常強大、靈活。不同的驅動程序內部會實現不同的 ioctl,APP 可以使用各種 ioctl 跟驅動程序交互:可以傳數據給驅動程序,也可以從驅動程序中讀出數據。
5.2.3 mmap 函數
在 Ubuntu 中執行“man mmap”,可以看到 mmap 函數的說明:


想更深刻地理解 mmap 的內部機制,可以看《嵌入式 Linux 驅動開發基礎知識》中關于 mmap 的介紹。作為 APP 開發,只需要知道它的用法就可以了。
頭文件:
#include <sys/mman.h>
函數原型:
void *mmap(void *addr, size_t length, int prot, int flags,int fd, off_t offset);
函數說明:
① addr 表示指定映射的內存起始地址,通常設為 NULL 表示讓系統自動選定地址,并在成功映射后返回該
地址;
② length 表示將文件中多大的內容映射到內存中;
③ prot 表示映射區域的保護方式,可以為以下 4 種方式的組合
a. PROT_EXEC 映射區域可被執行
b. PROT_READ 映射區域可被讀出
c. PROT_WRITE 映射區域可被寫入
d. PROT_NONE 映射區域不能存取
④ Flags 表示影響映射區域的不同特性,常用的有以下兩種
a. MAP_SHARED 表示對映射區域寫入的數據會復制回文件內,原來的文件會改變。
b. MAP_PRIVATE 表示對映射區域的操作會產生一個映射文件的復制,對此區域的任何修改都不會寫回 原來的文件內容中。 ⑤ 返回值:若成功映射,將返回指向映射的區域的指針,失敗將返回-1。


百問網技術論壇:http://bbs.100ask.net/
百問網官方wiki(資料下載):http://wiki.100ask.org/
線上課堂:https://www.100ask.net/index
百問網開發板:
淘寶:https://100ask.taobao.com/
天貓:https://weidongshan.tmall.com/
技術交流群(鴻蒙開發/Linux/嵌入式/驅動/資料下載)
QQ群:869222007
單片機-嵌入式Linux交流群:
QQ群:536785813

http://weixin.qq.com/r/M0hvd2-EwjK9rSsU9x0h (二維碼自動識別)


百問科技公眾號

http://weixin.qq.com/r/nkx-Z6jEa-UUrewE9xmM (二維碼自動識別)


百問科技服務號

總結

以上是生活随笔為你收集整理的length函数的头文件_Framebuffer 应用编程中涉及的 API 函数的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。