我在寫一個與USB視頻播放控制器交互的用戶空間程序。我使用C++進行編程,並且該程序旨在在Linux上運行。在研究libusb手冊時,我遇到了void libusb_exit (struct libusb_context * ctx)
函數。什麼是不調用libusb_exit()的後果
描述says:
取消初始化libusb的。
應在關閉所有打開的設備之後並在您的應用程序終止之前調用。
該手冊沒有解釋爲什麼它需要。我對於終止一個已經初始化並使用libusb而沒有調用libusb_exit()
的程序的後果感到好奇。如果由於某些原因,我的程序在終止前無法呼叫libusb_exit()
,有人可以解釋可能發生什麼壞事嗎?它會導致系統資源泄漏?
我想你誤解了(或未能解決)這個問題。 IIUC它問爲什麼有必要在終止該過程之前調用'libusb_exit'(再次,IIUC,它實際上不是必需的)。你提到_crashes_令人困惑。如果應用程序_crashes_與完全退出相比,庫如何設法以不同方式處理上下文? – davmac