write函数进行文件写入操作
1.write函数原型:ssize_t write(int fd, const void *buf, size_t count);
2.参数1:int fd,文件描述符即open函数的返回值;
参数2:const void *buf,写入到fd文件内容的写入缓冲区;
参数3:size_t count,要写入内容的字节数;
3.返回值:正确写入则返回写入字节大小,没有内容写入则返回0,错误写入则返回-1;
4.包含特定头文件:#include <unistd.h>
来看看怎么使用write函数,首先用touch bread.txt创建一个空文件,然后vi mwrite.c创建代码,内容如下:
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <stdio.h>
#include <string.h>
int main()
{
int fd;
fd=open("/root/bread.txt",O_RDWR);
if(fd==-1)
{
{printf("fail\n");}
}
else
{
char *cont="goods request";
int r=write(fd,cont,strlen(cont));
if(r>-1)
{printf("ok,%d\n",r);}
}
close(fd);
return 0;
}
上述代码的意思是打开bread.txt文件,以读写模式,如果文件不存在则报错,否则利用write函数写入指定的内容,正确写入则返回写入字节大小,没有内容写入则返回0,错误写入则返回-1,gcc编译后,运行文件,结果如下:
2、read函数进行文件读操作
1.函数原型:ssize_t read(int fd, void *buf, size_t count);
2.参数1:int fd,要读文件的文件描述符;
参数2:void *buf,存放读出来内容的缓冲区;
参数3:size_t count,从fd文件中读内容的字节大小;
3.返回值:正确读取则返回读取到内容的字节大小,没有内容则返回0,错误读取则返回-1;
4.包含特定头文件:#include <unistd.h>
首先用vi mread.c创建文件,输入以下代码
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <stdio.h>
#include <string.h>
int main()
{
int fd;
fd=open("/root/bread.txt",O_RDONLY);
if(fd==-1)
{
{printf("fail\n");}
}
else
{
char buf[1024];
int r=read(fd,buf,1024);
if(r>-1)
{
printf("ok,%d\n txt=%s\n",r,buf);
}
}
close(fd);
return 0;
}
代码意思是打开指定的文件,然后创建缓冲区大小,调用read函数读取指定大小到缓冲区,最后判断结果,输入结果,效果如下:
五谷丰收,大富大贵