免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1122 | 回复: 6
打印 上一主题 下一主题

请帮我看一下,为什么这样还是不能copy二进制文件呢? [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2004-05-16 22:03 |只看该作者 |倒序浏览
#include<stdio.h>;
main( int argc, char *argv[])
{
       
    FILE *out,*in;
    char c ;
        if (argc!=3)
        {
                printf("You forgot to enter a filename\n";
                exit(0);
        };
       
        if((in=fopen(argv[1], "rb")==NULL)
        {
                printf("cannot open infile\n";
                exit(0);
        }

        if((out=fopen(argv[2],"wb")==NULL)
        {
                printf("cannot open outfile\n";
                exit(0);
        }

        while((c = fgetc(in)) != EOF)
        {
                  fputc(c,out);
        }
        fclose(in);
        fclose(out);
}

以上是想用来拷贝二进制文件的一个很简单的程序,可是不知道为什么,总是只能拷贝文本文件,不能拷贝MP3,和SXW文件,觉得很郁闷,好像没有错误阿?帮忙看一下好吗?还是说,要拷贝二进制文件不能这样做呢?噢,这是在Linux下.

论坛徽章:
0
2 [报告]
发表于 2004-05-16 22:12 |只看该作者

请帮我看一下,为什么这样还是不能copy二进制文件呢?

fgetc本来就只是用来处理无符号整型或字符型的,要处理二进制用fread吧
man fread

论坛徽章:
0
3 [报告]
发表于 2004-05-16 22:34 |只看该作者

请帮我看一下,为什么这样还是不能copy二进制文件呢?

嗯?但是那个不是用来读结构体的吗?

论坛徽章:
0
4 [报告]
发表于 2004-05-16 22:41 |只看该作者

请帮我看一下,为什么这样还是不能copy二进制文件呢?

什么结构体?你是说的size_t size这个参数?
看你怎么想,你把两个size_t的参数组合看作每次读取的长度不是一样?

论坛徽章:
0
5 [报告]
发表于 2004-05-17 07:53 |只看该作者

请帮我看一下,为什么这样还是不能copy二进制文件呢?

size_t就是int

论坛徽章:
0
6 [报告]
发表于 2004-05-17 09:30 |只看该作者

请帮我看一下,为什么这样还是不能copy二进制文件呢?

[quote]原帖由 "想飞的牛"]嗯?但是那个不是用来读结构体的吗?[/quote 发表:

她的意思应该是第二个参数表示的是一个结构的单位长度,第三个参数是结构的数目,当然这个函数可以这样用,但是也可以简单的把第二,三个参数的积看成是一个字节长度参数

论坛徽章:
0
7 [报告]
发表于 2004-05-17 11:53 |只看该作者

请帮我看一下,为什么这样还是不能copy二进制文件呢?

呵呵,是阿,是阿,我说的就是大天使所理解的意思……:)
还是不是很清楚怎么用~
其实我本来是想作Linux下二进制文件的传送的,先拿拷贝的来作实验,嘻嘻,不知道方向对不对阿?或者有什么其他的高见阿?谢谢了,谢谢了~
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP