在c程序中如何调ftp?
一定要在c中,不能用shell
最好有实例
---------------------------------------------------------------
不知道你的平台是不是 sco unix, 如果是的话,撞大奖了, SCO提供一套 ftp 的API函数,可以用 man ftp_api 可以查看对应的帮助。
如果是其他系统,试试用 ftp 当作关键字来查看man中有没有对应api.
---------------------------------------------------------------
SCO提供一套 ftp 的API函数,但不能改用C++,不然编译同不过
---------------------------------------------------------------
装一个ncftp吧
---------------------------------------------------------------
教你一个手工方法:
telnet $HOSTNAME ftp
>USER $USERNAME
>PASS $PASSWORD
>PASV
这时会回答你PASV(xxx,xxx,xxx,xxx,aaa,bbb)
再开一个telnet:
telnet $HOSTNAME aaa * 256 + bbb
在第一个连接当中写
retr /etc/hosts
看看第二个连接,是不是收到数据了
用程序实现,这种方法可移植性强,并且不复杂
---------------------------------------------------------------
需要改两出处。
第一处是你改错了。
不能是:
if (execl("/usr/bin/ftp", "ftp -vn<
n+=read(fi, &buf[n], size);
改成:
while(poll(fds, 1, 100)>0)
{
int t;
if (!(t=read(fi, &buf[n], size)))
break;
n+=t;
}