【问题标题】:exec ftp -vn with system returns errorexec ftp -vn with system 返回错误
【发布时间】:2014-09-03 16:16:04
【问题描述】:

我使用 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);

system 命令在 hp-ux 平台中没有返回错误,而在 redhat 中返回以下错误:

03.09.2014 15:02:51 **错误 - Befehl exec ftp -vn 03.09.2014 15:02:51 **错误 - 退出状态 1

注意:我通过命令行检查了登录 ftp 服务器,一切正常,从来没有通过系统。

请支持一下。

【问题讨论】:

    标签: c linux ftp


    【解决方案1】:

    据我所知,ftp 是一个交互式应用程序。所以你必须使用“预期”机制来自动化它。而且由于您必须与之交互,恕我直言,最好的想法是调用一个执行所有 ftp 操作的脚本,然后以您认为合适的方式处理结果。

    【讨论】:

    • 是的,我们可以在非交互式应用程序中使用 FTP 来推送或加载文件。
    • 好吧,看起来像我,或者你不明白。让我试着解释一下我的想法。当您从命令行调用 ftp 时,ftp 应用程序与 shell 交互。当您像以前那样调用它时,您的 C 程序“将控制权转移”给 shell,它仍然与 ftp 应用程序交互。因此,据我所知,ftp 无法直接与您的 C 程序进行交互。最常见的解决方案通常是制作一个像程序一样与 ftp 一起使用的 bash 脚本。
    • 实际上,我正在寻找解释为什么我的 C 程序在 hp-ux 平台上没有错误地完成并且在 Redhat 平台上不起作用??
    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 2011-08-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-07-20
      相关资源
      最近更新 更多