用fread 实现,将任意文件中的数据显示到终端上
#include <stdio.h>
int main(int argc, const char *argv[])
{
FILE* fp=fopen("./02fopen.c","r");
if(NULL == fp)
{
perror("fopen");
return -1;
}
size_t res;
char str[500];
for(int i=0;i<5;i++)
{
res=fread(str,1,sizeof(str),fp);
printf("%s",str);
}
fclose(fp);
return 0;
}
用read和write实现文件拷贝
#include <stdio.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <string.h>
#include <unistd.h>
int main(int argc, const char *argv[])
{
umask(0);
int fd=open(argv[1],O_RDONLY);
if(fd<0)
{
perror("open");
return -1;
}
size_t res;
char buf[128]="";
while(1)
{
res=read(fd,buf,sizeof(buf)-1);
if(0==res)
{
printf("文件读取完毕\n");
break;
}
else if(res<0)
{
perror("read");
break;
}
}
int fd1=open("./01fopen.c",O_WRONLY|O_CREAT|O_TRUNC,0777);
if(fd1<0)
{
perror("open");
return -1;
}
res=write(fd1,buf,sizeof(buf));
printf("res=%ld\n",res);
close(fd);
close(fd1);
return 0;
}