2014-09-03 1 views
0

Im использованием C языка сайта, я возвращаюсь к ошибке:Exec FTP -vn с системой возвращает ошибку

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); 

система команд не возвращает ошибку в HP-UX платформ и возвращается в RedHat следующее сообщение об ошибке :

03.09.2014 15:02:51 ** ОШИБКА - Befehl Exec FTP -vn < < EOF
03.09.2014 15:02:51 ** ОШИБКА - Выход-Status 1

NB: Я проверил вход в ftp-сервер через командную строку, и это было нормально, никогда системой.

Не могли бы вы поддержать.

ответ

0

Ошибка была в разрешениях перенаправления, система redhat отказала в записи на файл ошибки. Разрешения добавлены, и проблема решена. Он не был связан с командой FTP.

0

Насколько я помню, ftp является интерактивным приложением. Поэтому вам придется использовать механику «ожидать», чтобы автоматизировать ее. И так как вам придется взаимодействовать с ним, лучшая идея imho - вызывать скрипт, который выполняет все действия ftp, а затем обрабатывать результаты так, как вы считаете нужным.

+0

Да, мы можем использовать FTP без интерактивного приложения для загрузки или загрузки файлов, например. –

+0

Хорошо, похоже, что я или вы что-то не понимаете. Позвольте мне попытаться объяснить мой подбородок мысли. Когда вы вызываете ftp из командной строки, приложение ftp взаимодействует с оболочкой. когда вы вызываете его так же, как и вы, ваша программа C «передает управление» в оболочку, которая все еще взаимодействует с ftp-приложением. Таким образом, нет прямого способа, которым я знаю, для ftp, чтобы напрямую взаимодействовать с вашей программой на C. Наиболее распространенным решением обычно является создание сценария bash, который работает с ftp, как программа. – HighPredator

+0

На самом деле, я ищу объяснение, почему моя программа C закончена без ошибок в платформе hp-ux и не работает в платформе Redhat? –

Смежные вопросы