用read和write拷贝文件
#include <myhead.h>
typedef struct
{
char name[20];
int age;
}stu;
int main(int argc, const char *argv[])
{
int Q,T;
stu a[4]={{"张三",20},{"李四",18},{"王五",20},{"牛六",20}};
Q=open("./1.txt",O_WRONLY | O_CREAT | O_TRUNC,0664);
if(Q==-1)
{
perror("open");
return -1;
}
stu b[4];
int len=write(Q,a,sizeof(stu)*4);//将4个结构体内容写到文件描述符Q指向的文件
close(Q);
Q=open("./1.txt",O_RDONLY);
if(Q==-1)
{
perror("open");
return -1;
}
T=open("./2.txt",O_WRONLY | O_CREAT | O_TRUNC,0664);
if(T==-1)
{
perror("open");
return -1;
}
read(Q,b,len);//将Q指向的文件内容读出存在缓存区b中
close(Q);
write(T,b,sizeof(b));//将缓存区b的内容写入T指向的文件中
close(T);
T=open("./2.txt",O_RDONLY);
read(T,b,sizeof(b));//将T指向的文件内容读到b缓存区中
close(T);
for(int i=0;i<4;i++)
{
printf("%s\t%d\n",b[i].name,b[i].age);
}
putchar(10);
return 0;
}
代码结果
8.22思维导图