ubuntu ctrl c 無法結束ros節點

2021-10-04 09:46:04 字數 505 閱讀 3388

問題描述:

在命令視窗中按下ctrl+c後 程式雖然停止執行,但不能退出到命令列狀態,必須強制退出才可以。 新增了signal(sigint, mysiginthandler);但不能自動呼叫

解決辦法:

signal(sigint, mysiginthandler);新增的位置不正確。調整在程式中的位置如下所示:放到ros::rate 和 ros::nodehandle nh; 語句後面就可以了。

int

main

(int argc,

char

** ar**)

return0;

}

mysiginthandler**如下:

void

mysiginthandler

(int sig)

參考:

結束普通方法無法結束的程序

ntsd c q p pid ntsd c q pn pname 兩種方法 一種是使用程序的id號,將pid換成對應程序id號即可 一種是使用程序的名稱,將pname換成對應的exe名字即可,比如notepad.exe 為了方便,寫了個批處理,將該批處理和ntsd放在一起,使用時執行批處理,選擇對應...

While cin str 無法結束問題

輸入緩衝是行緩衝。當從鍵盤上輸入一串字元並按回車後,這些字元會首先被送到輸入緩衝區中儲存。每當按下回車鍵後,cin.get 就會檢測輸入緩衝區中是否有了可讀的資料。cin.get 還會對鍵盤上是否有作為流結束標誌的 ctrl z 或者 ctrl d 鍵按下作出檢查,其檢查的方式有兩種 阻塞式以及非阻...

while cin str 無法結束的問題

有問我其寫的while cin str 為何無論如何總是無法結束?其實在你輸入完字串後,鍵下回車後,再ctrl z windows環境下是ctrl z,而linux unix下是ctrl d 就ok了!至於原因如下 cin是終端輸入,也被稱之為標準輸入 standard input cin的主要功能...