读书人

关于LINUX C编程上的read write函数,你

发布时间: 2012-04-17 15:06:33 作者: rapoo

关于LINUX C编程上的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 100char 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);}


[解决办法]
探讨

引用:

因为c库里面包含了这两个函数


拜托先去查一查C99,看有没有包含这两个函数?是fread汗fwrite吧?

读书人网 >C语言

热点推荐