成人在线你懂的-成人在线免费小视频-成人在线免费网站-成人在线免费视频观看-日韩精品国产一区二区-日韩精品国产一区

掃一掃
關注微信公眾號

linux設備驅動筆記——字符設備驅動3
2007-08-07   中國IT實驗室

※ read和write

ssize_t read(struct file *filp, char _ _user *buff,size_t count, loff_t *offp);
從設備拷貝數據到用戶空間
ssize_t write(struct file *filp, const char _ _user *buff,size_t count, 
loff_t *offp);
從用戶空間拷貝數據到設備上。

※ 參數buff是指向用戶空間的緩沖區,這個緩沖區或者保存要寫入的數據,或者是一個存放新讀入數據的空緩沖區。

         unsigned long copy_to_user(void _ _user *to, const void *from,
unsigned long count);
 
         unsigned long copy_from_user(void *to, const void _ _user *from,
unsigned long count);

※ 這兩個函數還檢測用戶空間的指針是否有效。

※ Read方法

n 如果返回值等于最為count參數傳遞給read系統調用的值,所請求的字節數傳輸就成功完成了。這是最好的情況。

n 如果返回值是正的,但是比count小,只有部分數據成功傳送。這種情況因設備的不同可能有許多原因。大部分情況下,程序會重新讀數據。例如,如果你用fread函數讀數據,這個庫庫函數會不斷調用系統調用直至所請求的數據傳輸完成。

n 如果返回值為0,它表示已經到達了文件尾。

n 負值意味著發生了錯誤。值就是錯誤編碼,錯誤編碼在<linux/errno.h>中定義。

※ 與read相似,根據如下返回值規則,write也可以傳輸少于請求的數據量:

n 如果返回值等于count,則完成了請求數目的字節傳送。

n 如果返回值是正的,但小于count,只傳輸了部分數據。再說明一次,程序很可能會再次讀取余下的部分。

n 如果值為0,什么也沒寫。這個結果不是錯誤,而且也沒有什么緣由需要返回一個錯誤編碼。再說明一次,標準庫會重復調用write。以后的章節會介紹阻塞型write,我們會對這種情形最更詳盡的考察。

n 負值意味發生了錯誤;語義與read相同。

熱詞搜索:

上一篇:linux設備驅動筆記——字符設備驅動2
下一篇:PING值的合格界限是200

分享到: 收藏
主站蜘蛛池模板: 二年级拍手歌生字组词| 什么是实现碳达峰碳中和目标的基础路径| 杨贵妃1992版电影完整| 老司机免费在线观看| 祝福语生日| 美国电影waseas| 女人天下150集国语版电视剧| 大甜甜| 叶蓓个人资料简介| 石隽| 胡凯莉| 小班安全开学第一课| 水怪电影| 招领启事的格式| 廖亚凡| 傅首尔个人资料| 科室对分级护理落实情况检查记录 | 电影《地狱神探》| 珍爱如血泰剧全集在线观看| 教育向美而生读书心得体会| 高地1—36集电视剧免费观看| 怀男孩和女孩有什么区别| 绿椅子韩剧完整免费观看| 霹霹乐翻天| 财税2010121号原文| 在线播放www| 任港秀| 《流感》高清在线观看| 男孩之爱 电影| 口加一笔变新字有几个| 托尔金| 消防知识问答100题| 美国电影golddiggers| 性欧美18一69性sexhd| 心跳影视| 美女出水| va电影| 1998年槟榔西施| 雪暴 电影| 洋葱电影| 港股开户测试答案2024年|