在開始之前,我想澄清一下,這不是一個命令行工具,而是一個通過它自己的命令行界面接受命令的應用程序。如何在命令行界面中處理ctrl-break信號
編輯:我必須對我之前的解釋表示歉意,顯然我沒有很好的解釋它。還有一次...
我正在構建一個接受用戶命令的命令行界面應用程序。我有一個信號處理程序設置來捕捉信號,然後設置一個標誌,我需要終止應用程序。我遇到的問題是我能找到的所有控制檯功能都是阻塞的,這意味着我無法檢測到我需要退出控制檯處理循環,直到用戶按下某個鍵(或輸入,具體取決於功能)。
有沒有一些標準的方式我可以做非塊控制檯交互,或者是否有一個優雅的方式來構建程序,以便如果我只是從信號線程終止,一切都將得到妥善處理和釋放(請不要誤解這一點,我知道如何使用鎖定和釋放信號線程中的資源來完成這項工作,但這可能會變得麻煩,所以我寧願避免它)
希望解釋更有意義...
注:在Windows中,點擊關閉按鈕將提高SIG代碼`SIGBREAK`(CTRL-打破) – 56ka 2014-08-12 13:35:43