#include<stdio.h>
//标准输入输出头文件 常见的有printf、scanf,fopen(用于打开文件并返回一个文件指针)、fread(用于从文件中读取数据)
#incliude<fentl.h>
//该文件包含了与浮点环境相关的函数和宏定义
#include<sys/stat.h>
//该头文件包含了用于获取和操作文件信息的函数
//例如检查文件是否存在、获取文件大小、修改文件时间等。通过包含这个头文件,你可以在代码中使用这些函数来处理文件的状态和属性。
#define SIZE 1
void filecopy(char*infile,char*outfile){//这是一个名为`filecopy`的函数定义,接受两个字符指针类型的参数,分别表示输入文件和输出文件的名称。
char Buffer[SIZE];
int in_fh,out_fh,Count;
if((in_fh=open(infile,O_RDONLY))==-1)//尝试以只读模式(`O_RDONLY`)打开输入文件,如果打开失败
printf("Opening infile");
if( ( out_fh=open( outfile, (O_WRONLY|OCREAT|O_TRUNC) , (S_IRUSR|S_IWUSR) )==-1 ) )
//这段代码尝试以写入模式(`O_WRONLY`)创建并截断输出文件(`OCREAT|O_TRUNC`),并设置文件的用户读和写权限(`S_IRUSR|S_IWUSR`)。
//如果打开失败,会输出`Opening outfile`。
printf("Opening outfile");
while( ( count=read( in_fh,Buffer,sizeof(Buffer) ) )>0 )//这段代码进入一个循环,每次读取`SIZE`个字符到`Buffer`中,然后尝试将这些字符写入输出文件。
if(write(out_fh,Buffer,count)!=count)//如果写入的字符数与读取的字符数不相等,会输出`Writing data`。
printf("Writing data");
if(count==-1)
printf("reading data");
close(in_fh);//关闭输入文件
close(out_fh);//关闭输出文件
}
/*此代码不完整不可运行*/