当前位置: 技术问答>linux和unix
求助,谁来帮我解释一下这段linux下的C程序
来源: 互联网 发布时间:2017-02-26
本文导语: #include #include #include #include #include #include #include #include #define NEWFILE (O_WRONLY|O_CREAT|O_TRUNC) #define BUFSIZE 1024 #define size 1 int my_read(int fd,char *buf,size_t count); int my_write(int fd,char *bur,size_t count); static char ...
#include
#include
#include
#include
#include
#include
#include
#include
#define NEWFILE (O_WRONLY|O_CREAT|O_TRUNC)
#define BUFSIZE 1024
#define size 1
int my_read(int fd,char *buf,size_t count);
int my_write(int fd,char *bur,size_t count);
static char read_buf[BUFSIZE];
static int read_offset=BUFSIZE;
static int read_max=BUFSIZE;
static char write_buf[BUFSIZE];
static int write_offset=0;
int main(void)
{
char infile[ ]={"test.dat"};
char outfile[ ]={"backup.dat"};
char buf[size];
int infd,outfd,count;
if((infd=open(infile,O_RDONLY))==-1)
{
printf("ERROR,OPEN READ FILE FAILED: n",sys_errlist[errno]);
exit(255);
}
if((outfd=open(outfile,NEWFILE,0600))==-1)
{
printf("ERROR,OPEN WRITE FILE FAILED: n",sys_errlist[errno]);
exit(255);
}
while(count=read(infd,buf,sizeof(buf))>0)
{
if(write(outfd,buf,count)!=count)
{
printf("ERROR,WRITE FILE FAILED: n",sys_errlist[errno]);
exit(255);
}
}
if(count==-1)
{
printf("ERROR,READ FILE FAILED: n",sys_errlist[errno]);
exit(255);
}
close(infd);
if(write_offset>0)
{
write(outfd,write_buf,write_offset);
write_offset=0;
}
close(outfd);
}
int my_read(int fd,char *buf,size_t count)
{
int i;
for(i=0; i
#include
#include
#include
#include
#include
#include
#include
#define NEWFILE (O_WRONLY|O_CREAT|O_TRUNC)
#define BUFSIZE 1024
#define size 1
int my_read(int fd,char *buf,size_t count);
int my_write(int fd,char *bur,size_t count);
static char read_buf[BUFSIZE];
static int read_offset=BUFSIZE;
static int read_max=BUFSIZE;
static char write_buf[BUFSIZE];
static int write_offset=0;
int main(void)
{
char infile[ ]={"test.dat"};
char outfile[ ]={"backup.dat"};
char buf[size];
int infd,outfd,count;
if((infd=open(infile,O_RDONLY))==-1)
{
printf("ERROR,OPEN READ FILE FAILED: n",sys_errlist[errno]);
exit(255);
}
if((outfd=open(outfile,NEWFILE,0600))==-1)
{
printf("ERROR,OPEN WRITE FILE FAILED: n",sys_errlist[errno]);
exit(255);
}
while(count=read(infd,buf,sizeof(buf))>0)
{
if(write(outfd,buf,count)!=count)
{
printf("ERROR,WRITE FILE FAILED: n",sys_errlist[errno]);
exit(255);
}
}
if(count==-1)
{
printf("ERROR,READ FILE FAILED: n",sys_errlist[errno]);
exit(255);
}
close(infd);
if(write_offset>0)
{
write(outfd,write_buf,write_offset);
write_offset=0;
}
close(outfd);
}
int my_read(int fd,char *buf,size_t count)
{
int i;
for(i=0; i
您可能感兴趣的文章:
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。
站内导航:
特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!