亚洲精品一二区_国产黄色片网站_99久久久成人国产精品_蜜臀网_国产精品一区二区三区免费_成人av中文字幕_91精品国产欧美一区二区成人

當(dāng)前位置:首頁 > 嵌入式培訓(xùn) > 嵌入式學(xué)習(xí) > 講師博文 > write()函數(shù)的功能介紹及實(shí)例

write()函數(shù)的功能介紹及實(shí)例 時(shí)間:2018-06-15      來源:未知

功能:

向文件中寫入數(shù)據(jù)

頭文件:

#include

原型:

ssize_t write(int fd, const void *buf, size_t count);

參數(shù):

fd: 文件描述符

buf: 存放要寫入的數(shù)據(jù)的緩沖區(qū)首地址

count: 想要寫入的字節(jié)數(shù)

返回值:

>=0:成功寫入的字節(jié)數(shù),0表示什么都沒寫入

-1: 寫入失敗,并設(shè)置全局變量errno

例:

#include

#include

#include

#include

#include

#include

#include

int main(int argc, char *argv[])

{

if (argc < 2)

{

fprintf(stderr, "Usage: %s \n", argv[0]);

return -1;

}

int fd = 0;

if (0 > (fd = open(argv[1], O_WRONLY|O_CREAT|O_TRUNC, 0666)))

{

perror("open");

return -1;

}

char buf[100] = "hello world!";

int ret;

if (strlen(buf) != write(fd, buf, strlen(buf)))

{

perror("write");

return -1;

}

printf("Write file successfully!\n");

close(fd);

return 0;

}

注意:write第三個(gè)參數(shù)表示想要寫入的字節(jié)數(shù),返回值表示實(shí)際寫入的字節(jié)數(shù),-1表示出錯(cuò)。如果要查看真正寫入的字節(jié)數(shù)需要看返回值。比如套接字文件或者管道文件,有時(shí)候不能一次性把整個(gè)buf全部寫入文件,此時(shí)需要循環(huán)寫入。

例:

ssize_t mywrite(int fd, const void *buf, size_t count)

{

ssize_t size = 0;

int ret = 0;

while (size < count)

{

ret = write(fd, buf+size, count-size);

size += ret;

}

return size;

}

上述函數(shù)mywrite的功能是保證能夠成功寫入count字節(jié),mywrite的參數(shù)與write函數(shù)一樣。size表示已經(jīng)寫入的字節(jié)數(shù),當(dāng)成功寫入的字節(jié)數(shù)小于想要寫入的字節(jié)數(shù)時(shí),循環(huán)往文件中寫,從buf偏移size處開始把剩下的內(nèi)容寫入文件,直到size等于count跳出循環(huán)。

當(dāng)寫入的文件時(shí)套接字或者管道文件時(shí),有一個(gè)發(fā)送緩沖區(qū),如果緩沖區(qū)已滿,此時(shí)發(fā)送阻塞,這就是寫阻塞。如果設(shè)置為非阻塞模式O_NONBLOCK,緩沖區(qū)寫滿后,返回-1,錯(cuò)誤原因Resource temporarily unavailable。

當(dāng)寫入的文件時(shí)套接字或者管道文件時(shí), 如果讀端關(guān)閉,寫端還在向?qū)Χ藢懭霐?shù)據(jù)時(shí),此時(shí)會產(chǎn)生管道破裂信號SIGPIPE,導(dǎo)致程序終止。如果寫進(jìn)程沒有報(bào)任何錯(cuò)誤就結(jié)束,很有可能就是管道破裂造成,可以使用signal函數(shù)去捕捉該信號,判斷錯(cuò)誤原因

例: signal(SIGNAL, handler);

上一篇:printf格式化輸出函數(shù)詳解,并附帶最新典型案例

下一篇:讓你快速高效的掌握linux內(nèi)核編譯過程

熱點(diǎn)文章推薦
華清學(xué)員就業(yè)榜單
高薪學(xué)員經(jīng)驗(yàn)分享
熱點(diǎn)新聞推薦
前臺專線:010-82525158 企業(yè)培訓(xùn)洽談專線:010-82525379 院校合作洽談專線:010-82525379 Copyright © 2004-2022 北京華清遠(yuǎn)見科技集團(tuán)有限公司 版權(quán)所有 ,京ICP備16055225號-5,京公海網(wǎng)安備11010802025203號

回到頂部

主站蜘蛛池模板: 婷婷操 | 999久久免费高清热精品 | 亚洲成av人片在线观看天堂无码 | 日本精品高清一区二区不卡 | 国产成人综合在线观看网站 | xxxx日本69| 97人人爽人人喊人人模波多 | 中文字幕精品1在线 | 日本三级在线观看中文字 | 久久久久久久久性潮 | 免费jjzz在在线播放国产 | 99久久国产亚洲综合精品 | 国产女高中生被c视频 | 色综合中文字幕色综合激情 | 免费一级毛片清高播放 | 国产在线观看91 | 欧美亚洲人成网站在线观看刚交 | 国产精品伦理久久久久久 | 日本视频高清 | 黄网址在线观看 | 欧美国产综合视频 | jizzjizzjizz18中国| 欧美无删减| 国产欧美日韩精品a在线观看 | 亚洲午夜精品久久久久久成年 | 在线观看嗯啊成人动作片 | 日本一区二区免费在线观看 | 日本高清一二三区 | 国产日韩在线观看视频网站 | 欧美精品在线视频观看 | 国内不卡1区2区 | 99久久伊人精品波多野结衣 | 久操视频网站 | www.天天色.com | 日本高清视频www夜色资源 | 三级黄在线观看 | xxx日本视频| 欧美午夜在线 | 国产精品久久久久毛片真精品 | 日本深夜福利视频 | 国产丝袜视频在线 |