Sto scrivendo un programma di spazio utente che interagisce con il controller di riproduzione video USB. Sto programmando in C++ e il programma è progettato per funzionare su Linux. Durante lo studio del manuale di libusb mi sono imbattuto nella funzione void libusb_exit (struct libusb_context * ctx)
.Quali sono le conseguenze di non chiamare libusb_exit()
La descrizione says:
Deinitialize libusb.
Dovrebbe essere chiamato dopo aver chiuso tutti i dispositivi aperti e prima che l'applicazione termini.
Il manuale non spiega perché è necessario. Sono diventato curioso delle conseguenze della chiusura di un programma che aveva inizializzato e utilizzato libusb senza chiamare libusb_exit()
. Qualcuno può spiegare cosa potrebbero accadere cose brutte se per qualche ragione il mio programma non riuscirà a chiamare libusb_exit()
prima di terminare? Causerà la perdita di risorse di sistema?
Penso che tu abbia frainteso (o non riesci ad affrontare) la domanda. IIUC sta chiedendo perché sarebbe necessario chiamare 'libusb_exit' prima di terminare il processo (di nuovo, IIUC, in realtà non è necessario). La tua menzione di _crashes_ è confusa. In che modo la libreria riesce a gestire i contesti in modo diverso se l'applicazione _crashes_ è comparata all'uscita pulita? – davmac