Sto eseguendo il porting di un programma Windows su Linux. Il mio programma utilizza la gestione delle eccezioni strutturate di Windows (SEH). Linux non supporta la gestione strutturata delle eccezioni, tuttavia fornisce la gestione dei segnali. Possiamo sovrascrivere il segnale per sviluppare il paradigma SEH.Gestione delle eccezioni in linux
Una volta che siete in grado di filtrare l'eccezione di Windows offre tre alternative flussi di controllo dell'esecuzione:
1) EXCEPTION_EXECUTE_HANDLER: Esegui gestore 2) EXCEPTION_CONTINUE_SEARCH: Inoltrare l'eccezione di blocco successivo (se non esiste, allora a OS) 3) EXCEPTION_CONTINUE_EXECUTION: continua l'eccezione dall'istruzione in cui si è verificato l'interruzione.
Come posso ottenere questo flusso di controllo in Linux. In Linux, una volta gestito il segnale, il programma avvia l'esecuzione da dove è stato interrotto. Come sviluppare i paradigmi continue_search e execute_handler?
Grazie in anticipo
Grazie per la risposta. – Utkarsh
Sto usando il linguaggio C++. Potrebbe essere necessario estrarre questa funzionalità e creare un file oggetto condiviso. Ho anche paura di poter supportare la gestione dei segnali all'interno della libreria condivisa. Inoltre, cosa succede se lo sviluppatore dell'applicazione ha la precedenza sul segnale con qualche altro gestore. – Utkarsh
Ho letto la sigaction. Come hai descritto, restituisce il controllo nel punto in cui era stato interrotto. Ma, ho anche bisogno di saltare/eseguire un particolare codice bypassando il flusso esistente (esegui il blocco catch e continua la ricerca nei blocchi sopra). Non sei sicuro di come ottenere questa funzionalità. – Utkarsh