
我有一個 C 程序,第一次運行時運行良好(BLUEZ C API),但如果我按Ctrl+C停止它,然後如果我再次運行它,它永遠找不到任何 BLE 設備(掃描功能)。如果我重新啟動 linux,它會再次工作。我的程式在 while(1) 循環掃描和列印設備資訊(包括製造商資料)並呼叫:
stop_hci_scan(current_hci_state);
error_check_and_exit(current_hci_state);
close_hci_device(current_hci_state);
是外循環。
該程式必須倖存到這個事件(Ctrl+ C),因為我計劃將它放入一個linux服務中,以便在它掛起或發生其他情況時可以自動重新啟動它。
所以,看來我需要在第二次啟動程序之前進行一些清理(以避免重新啟動),對吧?
但什麼?
答案1
您可以使用(在命令列):
sudo hciconfig hci0 reset
我不知道C的等價物...