Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

readline()について #5

Open
yaneurao opened this issue Aug 16, 2016 · 0 comments
Open

readline()について #5

yaneurao opened this issue Aug 16, 2016 · 0 comments

Comments

@yaneurao
Copy link

yaneurao commented Aug 16, 2016

ReceiveCommands()なのですが、readline()の返し値を見てforループを抜ける構造になっていますが、このときquit処理をしないのでプロセスが終了しないです。Windows環境でCtrl+Z、Linux環境でCtrl+Dが送られてきたときにreadline()は0を返すのですが、このときにプロセスが残って困ります。あるいは、Pythonなどからsubprocessとして起動したときに、親側が死んだときにsubprocess側にはEOFが送られてくるのですが、このときもreadline()の返し値は0になるので、このときに正常に終了しないとプロセスが残って困るのです。

修正案として、getlineの返し値を見て、"quit"コマンドが送られてきたと解釈するのがお手軽だと思います。
for (std::string command; ;) {
if (!std::getline(std::cin, command))
command = "quit";

よろしくお願い致します。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant