write函數(shù)定義:write函數(shù)是基于Linux系統(tǒng)中的一項函數(shù)調(diào)用,主要用于在打開/創(chuàng)建的文件中寫入數(shù)據(jù)。
write函數(shù)包含的頭文件:
#include <unistd.h>
write函數(shù)的格式原型:
ssize_t write(int fd, const void *buf, size_t count);
write函數(shù)中的三項參數(shù):
① int fd | open一個文件,就會返回到文件描述符中,對文件后續(xù)的操作都需要用到文件描述符。 |
② const void *buf | 這是一個無類型的指針,通常將buf作為緩沖區(qū)來寫入/讀取文件。 |
③ size_t? count | 寫入文件的大小 |
? ? ? ? ? ? ? ? ???參數(shù)歸納: 從緩沖區(qū)buf開始寫入count字節(jié)到由文件描述符fd引用的文件里。
write函數(shù)返回值:
寫入成功,返回值為寫入的字節(jié)數(shù)
寫入失敗,返回值為-1
示例代碼:
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <stdio.h>
#include <unistd.h>
#include <string.h>
int main()
{
int fd;
char *buf = "hello world!";
fd = open("./file1",O_RDWR);
if(fd == -1){
printf("open file1 failed\n");
}
fd = open("./file1",O_CREAT|O_RDWR,0600);
if(fd > 0){
printf("open file1 success\nfd=%d\n",fd);
}
//原型: ssize_t write(int fd, const void *buf, size_t count);
write(fd,buf,strlen(buf));
close(fd);
return 0;
}
代碼編寫流程:
① 先創(chuàng)建/打開一個名為“file1”的文件,并返回到文件描述符中,權限為“O_RDWR”可讀可寫;
fd = open("./file1",O_CREAT|O_RDWR,0600);
② 定義無類型指針的緩沖區(qū)buf為char型(??可以根據(jù)寫入內(nèi)容定義為其他類型),寫入字符串“ hello world!”
char *buf = "hello world!";
③ 計算寫入文件的大小:strlen(buf)。注意需要包含頭文件“#include<string.h>”。
//原型: ssize_t write(int fd, const void *buf, size_t count);
write(fd,buf,strlen(buf));
編譯結(jié)果:
① fd=3,文件“file1”創(chuàng)建/打開成功文章來源:http://www.zghlxwxcb.cn/news/detail-790930.html
dhw@dhw-virtual-machine:~$ gcc demo3.c
dhw@dhw-virtual-machine:~$ ./a.out
open file1 failed
open file1 success
fd=3
dhw@dhw-virtual-machine:~$ ls
a.out demo1.c demo2.c demo3.c file1 snap
② 查看文件“file1”,字符串“ hello world!”寫入成功。文章來源地址http://www.zghlxwxcb.cn/news/detail-790930.html
dhw@dhw-virtual-machine:~$ cat file1
hello world!dhw@dhw-virtual-machine:~$
到了這里,關于Linux文件寫入操作:write函數(shù)的使用的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網(wǎng)!