当前位置: 技术问答>linux和unix
在程序里调用ftp批处理(sh)上传文件,如何判断文件已成功上传
来源: 互联网 发布时间:2015-11-19
本文导语: 我在程序里的调用方法如下: retcode=system("cat ftp.bat | ftp -n") 无论ftp是否成功,retcode均为0,实际上成功了,但程序里如何判断呢(因为也可能对方机器未开等原因导致失败) ftp.bat的内容为: open ip user user pwd bin...
我在程序里的调用方法如下:
retcode=system("cat ftp.bat | ftp -n")
无论ftp是否成功,retcode均为0,实际上成功了,但程序里如何判断呢(因为也可能对方机器未开等原因导致失败)
ftp.bat的内容为:
open ip
user user pwd
bin
prompt
mput *
quit
retcode=system("cat ftp.bat | ftp -n")
无论ftp是否成功,retcode均为0,实际上成功了,但程序里如何判断呢(因为也可能对方机器未开等原因导致失败)
ftp.bat的内容为:
open ip
user user pwd
bin
prompt
mput *
quit
|
你可以用popen,像这样:
#include
int main() {
char s[1025];
FILE* fp = popen("cat ftp.bat|ftp -n", "r");
if(!fp) {
printf("failedn");
return -1;
}
while(fgets(s,1024,fp)) {
printf("- %s", s);
}
pclose(fp);
}
用你的例子,运行的结果就是:
ftp: Name or service not known
- Not connected.
- Not connected.
- Interactive mode off.
- Not connected.
你可以用fgets得到这些结果,分析一下就知道ftp是否正确了
#include
int main() {
char s[1025];
FILE* fp = popen("cat ftp.bat|ftp -n", "r");
if(!fp) {
printf("failedn");
return -1;
}
while(fgets(s,1024,fp)) {
printf("- %s", s);
}
pclose(fp);
}
用你的例子,运行的结果就是:
ftp: Name or service not known
- Not connected.
- Not connected.
- Interactive mode off.
- Not connected.
你可以用fgets得到这些结果,分析一下就知道ftp是否正确了