藍森林首頁 | 返回主頁 | 本站地圖 | 站內搜索 | 聯繫信箱 |
 您目前的位置:首頁 > 自由軟件 > 技術交流 > 應用編程


    

藍森林 http://www.lslnet.com 2006年6月6日 10:18


奇怪的問題------關於popen()

我有一個可執行文件:
clent回車後要求輸入參數為:
serverhost
command
user
var1
var2
其中var1還是var1 var2是看command的類型而定,由此向SERVER發出SOCKET請求進行處理,CLIENT和SERVER之間的交互執行無問題。現在我需要在 CLIENT所在的主機加一個SERVER,該SERVER的功能類似PROXY,即收到另一CLIENT所來的請求(command user var1 var2分4次SEND 和RECV,如果其中var2用不著,對方會用「NULL:字符串來代替,而我的PROXY SERVER根本不讀該字符串),然後調用popen(call, "r"),call是"%s <<EOF\n%s\n%s\n%s\n%s\n%s\nEOF\n",可是奇怪的問題發生了,可以看到PROXY打印出的命令為:
./client <<EOF
serverhost
command
user
var1
NULL
EOF
可是我的SERVER收到的卻是var1和var2都為空,而我手動將以上粘貼執行,SERVER收到正常,後來我將PROXY程序改了下,也根據從對方收到的command類型決定./client後是否有var2,這樣,
./client <<EOF
serverhost
commnad
user
var1
EOF
SERVER端還是var1=空,而command user都正常收到,手動執行也無問題,我實在想不通為什麼,後來只有將./client改成命令行參數的就OK了。

該問題請哪位高手指點一下!



Copyright © 1999-2000 LSLNET.COM. All rights reserved. 藍森林網站 版權所有。 E-mail : webmaster@lslnet.com