C语言如何实现文件复制功能?请教

janwang2000 2006-06-25 03:17:32
需求是这样的:

实现一个网络传输文件的程序,类似FTP的功能,但我要实现的是包括客户端和服务器端,在实现过程中,碰到一个问题,就是如何实现文件上传下载?(我觉得其实就是一个文件复制的过程)

但:对于一般的文本文件,打开读,然后在客户端再建立新文件,写进去就行了;
问题是对于比如可执行文件,其他等非文本方式的文件,读的是乱码,那怎么办?

又如何用C语言实现呢?

请教各位,谢谢!
...全文
601 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
大志哥123 2006-06-30
  • 打赏
  • 举报
回复
读写文件是可以用2进制的,关键是你的传输问题怎么做的.
wuhao123456 2006-06-30
  • 打赏
  • 举报
回复
程序员群:26184191
hzhxxx 2006-06-29
  • 打赏
  • 举报
回复

//送佛送到西,好人做到底
//使用 C/c++ 标准库实现
void filecopy()
{
std::string srcfile = "c:\\aaa.txt";
std::string destfile = "c:\\bbb.txt";
FILE *fpsrc = fopen(srcfile.c_str(),"r+b");
FILE *fpdest = fopen(destfile.c_str(),"w+b");
{
char buff[1024 * 64];
memset(buff,0,sizeof(buff));
int readlen = fread(buff,sizeof(char),sizeof(buff),fpsrc);
if(readlen < sizeof(buff))
{
//复制出现错误
if(ferror(fpsrc))
{
fclose(fpsrc);
fclose(fpdest);
}
fwrite(buff,sizeof(char),readlen,fpdest);
}
}
while(!feof(fpsrc));
fclose(fpsrc);
fclose(fpdest);
}
langziji 2006-06-29
  • 打赏
  • 举报
回复
^_^
Tangxiang 2006-06-26
  • 打赏
  • 举报
回复
文件转换时候的问题,才会有乱码吧……
不懂,
学习一下。
帮楼主顶!
我啃 2006-06-26
  • 打赏
  • 举报
回复
1。read进来然后OUTPUT
2。写一个BAT然后调用
我啃 2006-06-26
  • 打赏
  • 举报
回复
1。read进来然后OUTPUT
2。写一个BAT然后调用
hhyytt 2006-06-26
  • 打赏
  • 举报
回复
二进制读写
rexking0 2006-06-26
  • 打赏
  • 举报
回复
ftp若是单线程的话,就顺序读写就ok,若是多线程,那就用到文件分割及重组的模块,就是文本文件,你也可以用二进制读写,反正二进制能保证原样的输出,不会出错
rexking0 2006-06-26
  • 打赏
  • 举报
回复
打开文件时请指明是二进制读写
rexking0 2006-06-26
  • 打赏
  • 举报
回复
文件读写用read,write函数吧,也可用fread,fwrite。
chenhu_doc 2006-06-25
  • 打赏
  • 举报
回复
int fprintf( FILE *stream, const char *format [, argument ]...);
不好意思!
chenhu_doc 2006-06-25
  • 打赏
  • 举报
回复
二进制格式

fscanf(fp,"%s",str);

然后tcp之类的,到客户端fwrite
janwang2000 2006-06-25
  • 打赏
  • 举报
回复
那在目前FTP软件里实现的文件上传下载功能是不是也是这样读写二进制文件的呢?
I_Love_CPP 2006-06-25
  • 打赏
  • 举报
回复
用二进制格式写噻。

69,369

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧