当前位置: 技术问答>linux和unix
LINUX C 关于写文件的问题,文件为何写不进去,郁闷!
来源: 互联网 发布时间:2017-03-17
本文导语: #include #include #include #include #include int openfile(const char * filename) { int fd; fd=open(filename,O_RDONLY); if(fd==-1) printf("open err:源文件%s不存在:%mn",filename), exit(-1); return fd; } int openfile2(const char * filename) { int fd; fd=open(fil...
#include
#include
#include
#include
#include
int openfile(const char * filename)
{
int fd;
fd=open(filename,O_RDONLY);
if(fd==-1) printf("open err:源文件%s不存在:%mn",filename), exit(-1);
return fd;
}
int openfile2(const char * filename)
{
int fd;
fd=open(filename,O_RDWR|O_CREAT|O_EXCL,0666);
if(fd==-1) printf("file exist!n");
return fd;
}
void save(int fd,int fd2)
{
char buf[20];
int n;
bzero(buf,sizeof(buf));
while((n=read(fd,buf,20))>0)
{
write(fd2,buf,n);
}
}
int main(int args,char**argv)
{
int fd;
int fd2;
fd=openfile(argv[1]);
fd=openfile2(argv[2]);
save(fd,fd2);
close(fd);
close(fd2);
return 0;
}
【程序目标】:写一个程序负责文件拷贝
main 存在的文件 新的文件名
./main source.dat des.dat //source.dat 我事先写好了
【问题】我写出来的程序,为什么拷贝出来的新文件大小为0,就是新文件里面没数据。
分析:会不会是save函数中里面写错什么了。
望高手指点,感谢!
|
int fd;
int fd2;
fd=openfile(argv[1]);
fd=openfile2(argv[2]);
仔细一点, fd用了两次。。
int fd2;
fd=openfile(argv[1]);
fd=openfile2(argv[2]);
仔细一点, fd用了两次。。