当前位置: 技术问答>linux和unix
请教下面C函数在UNIX与Windows2000下有何区别?
来源: 互联网 发布时间:2015-08-30
本文导语: 以下是两个UNIX下的c函数,分别实现发送及接收文件,参数sock为端口号,我不知道这段函数在Windows2000系统下能不能直接用?如果不能,该怎么做才能改成widnows下能用的?请大侠帮忙,先谢谢大家了!!问题解决后,...
以下是两个UNIX下的c函数,分别实现发送及接收文件,参数sock为端口号,我不知道这段函数在Windows2000系统下能不能直接用?如果不能,该怎么做才能改成widnows下能用的?请大侠帮忙,先谢谢大家了!!问题解决后,再送上100分。
//文件接收函数
int IBrcvfile(int sock,char *rcvfile)
{
int r,len,last=0;
char info[2],slen[5];
#ifndef MAXSTRINGLEN
#define MAXSTRINGLEN 128
#endif
#ifndef INFO_NORMAL
#define INFO_NORMAL "N"
#endif
#ifndef INFO_END
#define INFO_END "E"
#endif
#ifndef INFO_RESP
#define INFO_RESP "R"
#endif
char str[MAXSTRINGLEN],cmd[128];
FILE *fp;
memset(str,0,MAXSTRINGLEN);
fp=fopen(rcvfile,"w+");
if(fp==NULL)
{
return -1;
}
while(1)
{
memset(str, 0, MAXSTRINGLEN);
memset(slen, 0, sizeof(slen));
//IBcomlog_print(__FILE__,__LINE__,"read info");
r=read(sock,info,1);
if(r
//文件接收函数
int IBrcvfile(int sock,char *rcvfile)
{
int r,len,last=0;
char info[2],slen[5];
#ifndef MAXSTRINGLEN
#define MAXSTRINGLEN 128
#endif
#ifndef INFO_NORMAL
#define INFO_NORMAL "N"
#endif
#ifndef INFO_END
#define INFO_END "E"
#endif
#ifndef INFO_RESP
#define INFO_RESP "R"
#endif
char str[MAXSTRINGLEN],cmd[128];
FILE *fp;
memset(str,0,MAXSTRINGLEN);
fp=fopen(rcvfile,"w+");
if(fp==NULL)
{
return -1;
}
while(1)
{
memset(str, 0, MAXSTRINGLEN);
memset(slen, 0, sizeof(slen));
//IBcomlog_print(__FILE__,__LINE__,"read info");
r=read(sock,info,1);
if(r