[問題] 利用程式輸入另外一個interactive程式
遇到的問題: (題意請描述清楚)
在執行某些互動式程式的時候,皆為手動輸入prompt所要求的資料
例如:
Continue? (yes/[no]): <-- 這裡需要user輸入
是否有方法可從另外一隻程式去對這樣的互動式程式作輸入的工作?
有Google一下以及爬了板上的文章
大致上有一些解法,想問問板上先進的看法以及對錯
所謂 interactive 也是從 stdin 讀入資料
如果可以將 stdin 從 keyboard 轉到輸入程式的 stdout
就可以達成以上的結果
利用 pipe 的簡單測試:
system("echo %s | interactive_prog", reply);
不過當 interacitve_prog 需要很多輸入時,
例如:
Username: <-- 先輸入使用者名稱
Password: <-- 再輸入使用者密碼
利用 popen():
FILE *stream = popen( "interactive_prog", "w" );
strcpy( buf, "abcd" ); /* username */
fwrite( buf, sizeof(char), sizeof(buf), stream );
strcpy( buf, "1234" ); /* password */
fwrite( buf, sizeof(char), sizeof(buf), stream );
不知道這樣是否是可行的解法?
望先進給小弟一些提示或者有更好的解法可以供小弟研究 Orz
感謝!
開發平台: (例: VC++ or gcc/g++ or Dev-C++, Windows or Linux)
gcc & Linux
補充說明:
--
お言葉に甘えて そうさせていただきます
破竹の勢い (はちく の いきおい)
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 59.120.184.171
推
11/17 17:28, , 1F
11/17 17:28, 1F
→
11/17 17:29, , 2F
11/17 17:29, 2F
→
11/17 18:59, , 3F
11/17 18:59, 3F