簡體   English   中英

從Java進程附加到外部C ++進程導致問題

[英]Attach to external c++ process from java process causing issue

我正在嘗試使用java.lang.process附加C ++可執行文件。 生成exec的代碼如下:

int main(int, char**){

std::cout << "Starting Up. . . . . " << std::endl;
std::string command;

while (command != "exit")
{
    std::cin >> command;
}

return 0;
}

在調試過程中,我發現在進程創建期間,進程在std :: cin上暫停並期望輸入該值,但是在下一次迭代時,它將自動采用先前的“命令” std :: cin值並繼續迭代“ while'循環而無需將控件返回到Java進程。 為什么C ++可執行文件在每次迭代時都不會在std :: cin處停止? 我正在使用Process.getOutputStream()從Java傳遞值。 如果描述有任何問題,請告訴我。 謝謝,Tor。

很可能沒有有效的輸入或模擬了某種EOF。 您應該檢查輸入是否有錯誤:

while ( std::cin && command != "exit" )
{
    std::cin >> command;
}

暫無
暫無

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

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