【发布时间】:2013-04-09 21:08:13
【问题描述】:
我必须编写一个 FTP 服务器,但我对如何传输数据有疑问。
我在 linux 上使用 ftp 命令来测试它,我目前正在处理LIST,它发送工作目录中的文件/目录列表。一切正常(ftp 可以很好地打印文件列表),除了 ftp 打印以下警告:
WARNING! 5 bare linefeeds received in ASCII mode
File may not have transferred correctly.
我想删除该警告,我认为 ftp 期待二进制数据,但我不知道如何通过套接字发送这样的数据,我目前正在做最基本的方法发送ls结果:
dup2(dst_channel, 1);
execlp("ls", "ls", "-l", NULL);
【问题讨论】:
-
FTP 期望换行符为 CR-LF,但您只是发送 LF。
-
有没有办法改变它而无需读取命令
ls的结果并将每个 LF 替换为 CR-LF?
标签: c linux ftp encode ftp-server