关于LINUX C编程上的read write函数,你懂吗?该如何解决
关于LINUX C编程上的read write函数,你懂吗?
本人在编写一个很简单的程序,就是把一个mp3文件,也就是二进制文件复制给另一个时,只复制了200多k而已,而且打不开,而原来的文件有4M多,我用的是read write函数,我知道用fread和fwrite方便,不过我想试一下用更加底层的read write函数,求大神说明一下为什么会出现复制不完整?
这是我的代码:
------解决方案--------------------
本人在编写一个很简单的程序,就是把一个mp3文件,也就是二进制文件复制给另一个时,只复制了200多k而已,而且打不开,而原来的文件有4M多,我用的是read write函数,我知道用fread和fwrite方便,不过我想试一下用更加底层的read write函数,求大神说明一下为什么会出现复制不完整?
这是我的代码:
- C/C++ code
#include <stdio.h> #include <stdlib.h> #include <fcntl.h> #include <sys/stat.h> #define SIZE 100 char buf[SIZE]; int main() { int src=open("in.mp3",O_RDONLY); if(src<0) { perror("open src"); exit(1); } int des=open("out.mp3",O_WRONLY|O_CREAT,S_IRWXU); if(des<0) { perror("open des"); exit(1); } int count; while((count=read(src,buf,sizeof(buf)))>0) { if(write(des,buf,count)<count) { perror("write error\n"); close(src); close(des); exit(1); } } close(src); close(des); }
------解决方案--------------------