色yeye在线视频观看_亚洲人亚洲精品成人网站_一级毛片免费播放_91精品一区二区中文字幕_一区二区三区日本视频_成人性生交大免费看

當前位置:首頁 > 嵌入式培訓 > 嵌入式學習 > 講師博文 > write()函數的功能介紹及實例

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

功能:

向文件中寫入數據

頭文件:

#include

原型:

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

參數:

fd: 文件描述符

buf: 存放要寫入的數據的緩沖區首地址

count: 想要寫入的字節數

返回值:

>=0:成功寫入的字節數,0表示什么都沒寫入

-1: 寫入失敗,并設置全局變量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第三個參數表示想要寫入的字節數,返回值表示實際寫入的字節數,-1表示出錯。如果要查看真正寫入的字節數需要看返回值。比如套接字文件或者管道文件,有時候不能一次性把整個buf全部寫入文件,此時需要循環寫入。

例:

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;

}

上述函數mywrite的功能是保證能夠成功寫入count字節,mywrite的參數與write函數一樣。size表示已經寫入的字節數,當成功寫入的字節數小于想要寫入的字節數時,循環往文件中寫,從buf偏移size處開始把剩下的內容寫入文件,直到size等于count跳出循環。

當寫入的文件時套接字或者管道文件時,有一個發送緩沖區,如果緩沖區已滿,此時發送阻塞,這就是寫阻塞。如果設置為非阻塞模式O_NONBLOCK,緩沖區寫滿后,返回-1,錯誤原因Resource temporarily unavailable。

當寫入的文件時套接字或者管道文件時, 如果讀端關閉,寫端還在向對端寫入數據時,此時會產生管道破裂信號SIGPIPE,導致程序終止。如果寫進程沒有報任何錯誤就結束,很有可能就是管道破裂造成,可以使用signal函數去捕捉該信號,判斷錯誤原因

例: signal(SIGNAL, handler);

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

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

熱點文章推薦
華清學員就業榜單
高薪學員經驗分享
熱點新聞推薦
前臺專線:010-82525158 企業培訓洽談專線:010-82525379 院校合作洽談專線:010-82525379 Copyright © 2004-2022 北京華清遠見科技集團有限公司 版權所有 ,京ICP備16055225號-5京公海網安備11010802025203號

回到頂部

主站蜘蛛池模板: 2020国产激情视频在线观看 | 久久这里的只有是精品23 | 少妇被躁爽到高潮无码 | 精品国产一区二区三区性色av | 国产真实乱子伦视频播放 | GV在线网站 | 永久免费看A片无码网站宅男 | 亚洲欧洲精品成人久久av18 | 丰满少妇人妻无码专区 | 十八岁以下不能看的影院免费 | 四虎在线影视 | 正在播放一区 | 一女被两男吃奶玩乳尖 | 亚洲AV成人无码久久精品老人 | 丝袜护士强制脚交 | 在线观看国产成人av天堂 | 国产精品A∨一区二区三区 欧洲av一区 | 午夜天堂AV天堂久久久 | www09国产日产欧产国产 | 四虎一区二区成人免费影院网址 | 亚洲欧洲日产国码综合在线 | 国语对白做受XXXXX在 | 日本人妻精品免费视频 | 精品国产青草久久久久福利 | 麻豆精品久久久久久久99蜜桃 | 日本夜爽爽一区二区三区 | 男人疯狂进入女人下部动态图 | 无码人妻丰满熟妇区毛片 | 色欲av伊人久久大香线蕉影院 | 色屁屁WWW影院免费观看入口 | 国产精品无码无卡无需播放器 | 视频在线精品 | 亚洲精品久久7777777国产 | 日韩成全视频观看免费观看高清 | 中国一级毛片免费观看 | 色先锋影音岛国av资源 | 中国1级黄色片 | 免费人成视频在线播放视频 | 日日躁狠狠躁狠狠爱 | 亚洲精品无码国产片 | 亚洲精品乱码久久久久久中文字幕 |