#include <stdio.h>
#include <error.h>
#include <stdlib.h>
#include <fcntl.h>
#include <string.h>
#define BUF_SIZE 128
void my_read(int fd)
{
int size;
char buffer[BUF_SIZE];
do
{
memset(buffer,'\0',BUF_SIZE);
size=read(fd,buffer,BUF_SIZE);
printf("size=%d\n",size);
if(size==0)
{
printf("到达文件末尾\n");
return;
}
else if(size<0)
{
printf("读取文件出现错误\n");
exit(1);
}
else
printf("文件中的数据是%s\n",buffer);
}while(1);
}
void my_write(int fd)
{
int size;int count=0;
char buffer[BUF_SIZE];
do
{
memset(buffer,'\0',BUF_SIZE);
printf("要写入的数据是\t");
fgets(buffer,BUF_SIZE,stdin);
size=write(fd,buffer,strlen(buffer));
printf("size=%d\n",size);
if(size<0)
printf("写入失败\n");
else if(size==0)
printf("没有写入\n");
else
printf("写入成功\n");
}while(strcmp(buffer,"#\n")!=0);
}
int main(int argc ,char **argv)
{
int fd=-1;
if(argc<=1)
{
printf("enter right filename\n");
return -1;
}
fd=open(argv[1],O_CREAT|O_RDWR|O_TRUNC,0644);//创建文件
if(fd==-1)
{
perror("create error");
return -2;
}
my_write(fd);
lseek(fd,0,SEEK_SET);
my_read(fd);
}