簡體   English   中英

從C呼叫期望文件

[英]Call expect file from 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應用程序執行文件。

您需要使用libexpect並從其api調用腳本。

我只找到了它的php綁定,但是在這里我沒有Debian告訴你什么軟件包提供了基本軟件包。

您可以使用system(3)popen(3)庫函數從C代碼運行期望腳本。 這些函數使用的系統調用,例如fork(2)execve(2)pipe(2)dup(2)waitpid(2) ,您也可以自己使用。

我強烈建議學習更多有關高級unix編程高級linux編程的知識 有一些概念和技巧要學習。

我相信您最好使用ssh (與scp ),而不是期望腳本通過網絡將普通密碼發送到遠程FTP服務器(這種方法存在一些安全問題)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM