Вызвать файл ожиданий с C

Я закодировал файл ftp.exp, который отправляет на сервер файл журнала приложения C.

#!/usr/bin/expect set timeout -1 spawn ftp xxx.xxx.xxx 21 match_max 100000 expect -re {[2]{2,}[0]{1,}} send -- "usrxxxx" expect -exact "usrxxxxx" send -- "\r" expect -re {[3]{2,}[1]{1,}} send -- "xxxx\r" expect -exact "\r 230 Access granted for xxxxxxxxxx !\r Remote system type is UNIX.\r Using binary mode to transfer files.\r ftp> " send -- "put /home/User/test.txt test2.txt\r" expect -exact "put /home/User/test.txt test2.txt\r" send -- "\r" expect -re {[2]{2,}[6]{1,}} send -- "quit\r" expect eof 

Скрипт отлично работает, но как я могу выполнить файл из приложения C.

    Вы можете использовать системные (3) или popen (3) библиотечные функции для запуска сценария ожидания из вашего кода на C. Эти функции используют системные вызовы, такие как fork (2) , execve (2) , pipe (2) , dup (2) , waitpid (2), которые вы также можете использовать самостоятельно.

    Я настоятельно рекомендую узнать больше о продвинутом программировании Unix и расширенном программировании Linux ; есть некоторые понятия и трюки, чтобы учиться.

    Я считаю, что вам лучше использовать sshscp ), чем сценарий ожидания, отправляющий простые пароли на провод к удаленному удаленному FTP-серверу (с вашим подходом есть некоторые проблемы с безопасностью).

    Вам нужно использовать libexpect и вызывать свой скрипт из своего api.

    Я нашел для него только привязки php, но у меня нет Debian здесь, чтобы рассказать вам, какой пакет предоставляет базовый пакет.