当前位置: 技术问答>linux和unix
如何编程去掉FTP传送中的“^M”字符
来源: 互联网 发布时间:2016-03-10
本文导语: 我用C++在Solaris平台上编写了一个FTP客户端,实现传送文件时,我从服务器上get下来的数据最后写到本地的文件中行尾都会多一个“^M字符”。在网上查时,说如果时从DOS到UNIX传送FTP文件时会有这个“^M”字符,但是我...
我用C++在Solaris平台上编写了一个FTP客户端,实现传送文件时,我从服务器上get下来的数据最后写到本地的文件中行尾都会多一个“^M字符”。在网上查时,说如果时从DOS到UNIX传送FTP文件时会有这个“^M”字符,但是我测试的FTP服务器和客户端都是Solaris平台,为什么也会出现这个“^M”字符?有什么办法可以避免吗?
从TCP接收数据的源代码如下:
while (1)
{
// m_datafd是发送RETR命令后和FTP服务器建立的数据通道fd
while ((retval=recv(m_datafd, dataBuf, 1024, 0)) 0)
{
dataBuf[retval] = 0;
write(fd, dataBuf, retval);
}
else if (retval == 0)
{
break;
}
else
{
if(m_datafd) close(m_datafd);
m_error = strerror(errno);
return -1;
}
}
从TCP接收数据的源代码如下:
while (1)
{
// m_datafd是发送RETR命令后和FTP服务器建立的数据通道fd
while ((retval=recv(m_datafd, dataBuf, 1024, 0)) 0)
{
dataBuf[retval] = 0;
write(fd, dataBuf, retval);
}
else if (retval == 0)
{
break;
}
else
{
if(m_datafd) close(m_datafd);
m_error = strerror(errno);
return -1;
}
}
|
type Image TYPE I ---->