exec ftp-系统返回错误的vn

exec ftp-系统返回错误的vn,c,linux,ftp,C,Linux,Ftp,我正在使用C语言,我继续我的错误: char * sys_cmd; sys_cmd="exec ftp -vn << EOF\nopen servername \nuser user_name pswd \nlcd /our_dir \ncd P01/FTP_DIR/IN \numask 006\nput HB504170\ndir HB504170\nclose \nquit\n\nEOF\n"; system(sys_cmd); char*sys\u cmd; sys_cmd

我正在使用C语言,我继续我的错误:

char * sys_cmd;
sys_cmd="exec ftp -vn << EOF\nopen servername \nuser user_name pswd \nlcd /our_dir \ncd P01/FTP_DIR/IN \numask 006\nput HB504170\ndir HB504170\nclose
\nquit\n\nEOF\n";

system(sys_cmd);
char*sys\u cmd;

sys_cmd=“exec ftp-vn据我所知,ftp是一个交互式应用程序“机械师将其自动化。由于您必须与它交互,imho最好调用一个脚本来执行所有ftp操作,然后以您认为合适的方式处理结果。

错误在重定向权限中,redhat系统拒绝写入错误文件。
添加了权限并解决了问题。它与FTP命令无关。

是的,我们可以在非交互式应用程序中使用FTP来推送或加载文件。好的,看起来要么我不懂,要么你不懂。让我试着解释一下我的想法。当您从命令行调用ftp时,ftp应用程序将和shell交互。当您像这样调用它时,您的C程序将控制权“转移”到shell,shell仍然与ftp应用程序交互。因此,我所知道的ftp无法直接与您的C程序交互。最常见的解决方案通常是制作一个与ftp一起工作的bash脚本,就像一个程序一样。实际上,我正在寻找一个解释,为什么我的C程序在hp ux平台上完成时没有出错,而在Redhat平台上不工作??