Linux C实现简单的文件拷贝
这里的b.c文件是提前创建好的里面写了东西
#include<unistd.h>
#include<fcntl.h>
#include<sys/types.h>
#include<sys/stat.h>
#include<stdio.h>
int main()
{
const char* pathName="a.c";
int in,out,flag;
char buffer[1024];
in=open("b.c",O_RDONLY,S_IRUSR);
if(-1==in)
{
printf(" 打开文件b.c失败 !\n");
return -1;
}
out=creat(pathName,S_IWUSR);
if(-1==in)
{
printf("创建文件 %s 失败!\n",pathName);
return -1;
}
while((flag=read(in,buffer,1024))>0)
{
write(out,buffer,flag);
}
close(in);
close(out);
printf("复制文件b.c到%s 完毕!\n",pathName);
return 0;
}
这里用到四个函数分别为open、creat、read、write
open函数
第一个参数为要打开文件的路径或文件名
第二个参数是功能flag,O_RDONLY表示以只读的方式打开文件
第三个参数是模式mode,S_IRUSR表示用户对文件有读权限
creat函数
第一个参数为要打开文件的路径或文件名
第二个参数是模式mode,S_IWUSR表示用户对文件有写权限
read函数
第一个参数是一个文件描述符,表示:从该文件描述符表示的文件读取数据
第二个参数是把从文件读到的信息放在一个缓冲数组中
第三个参数是读一次读多少字节
write函数
第一个参数是把数据写到哪里(写到哪个文件描述符中)
第二个参把把缓冲数组中的数据写到文件描述符中
第三个参数表示一次写多少字节