Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Ecovacs Deebot X12 OmniCyclone: lava grazie a FocusJet
Ecovacs Deebot X12 OmniCyclone: lava grazie a FocusJet
Il nuovo Deebot X12 OmniCyclone abbina un sistema di raccolta dello sporco senza sacchetto, un rullo di lavaggio esteso e la tecnologia FocusJet per intervenire più efficacemente sulle macchie più persistenti. Un robot completo e preciso che aiuta a tenere puliti i pavimenti di casa con il minimo sforzo
Narwal Flow 2: la pulizia di casa con un mocio a nastro
Narwal Flow 2: la pulizia di casa con un mocio a nastro
Narwal Flow 2 implementa un mocio a nastro che esegue una pulizia dettagliata del pavimento di casa, in abbinamento ad un potente motore di aspirazione della polvere: un prodotto ideale per gestire in autonomia e con grande efficacia le necessità di pulizia dei pavimenti di casa
Tastiera gaming MSI GK600 TKL: switch hot-swap, display LCD e tre modalità wireless
Tastiera gaming MSI GK600 TKL: switch hot-swap, display LCD e tre modalità wireless
MSI FORGE GK600 TKL WIRELESS: switch lineari hot-swap, tripla connettività, display LCD e 5 strati di fonoassorbimento. Ottima in gaming, a 79,99 euro
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 17-04-2004, 14:56   #1
anx721
Senior Member
 
L'Avatar di anx721
 
Iscritto dal: Oct 2002
Città: Roma
Messaggi: 1502
[c/c++]Catturare l'errore di segmentation fault

Salve, sapete se c'è un modo per catturare l'errore di segmentation fault da programma e riuscire ad esempio a trasformarlo in un'eccezione?

Mi spiego meglio. Supponiamo che io voglia usare nel mio programma una funzione funz() scritta da qualcuno. Ad ogni modo non posso avere la certezza che questa funzione funz() sia stata scritta bene e che non causera il suddetto errore provocando l'uscita dal mio programma. Allora vorrei ad esempio invocare la funzione funz() all'interno di un costrutto come try/catch (uso la terminologia java) che catturi l'errore, nel senso che l'errore provoca l'uscita dalla funzione che l'ha causato, ma non dal programma, permettendomi di gestire la cosa. In genere le eccezioni funzionano cosi, nel senso che se nessuno si preoccupa di "acchiapparle" possono farti uscire dal programma, ma se le catturri il programma non termina.
__________________
Sun Certified Java Programmer
EUCIP Core Level Certified

European Certification of Informatics Professionals

Ultima modifica di anx721 : 17-04-2004 alle 15:20.
anx721 è offline   Rispondi citando il messaggio o parte di esso
Old 17-04-2004, 17:56   #2
/\/\@®¢Ø
Bannato
 
L'Avatar di /\/\@®¢Ø
 
Iscritto dal: Jul 2000
Città: Malo (VI)
Messaggi: 1000
Re: [c/c++]Catturare l'errore di segmentation fault

Quote:
Originariamente inviato da anx721
Salve, sapete se c'è un modo per catturare l'errore di segmentation fault da programma e riuscire ad esempio a trasformarlo in un'eccezione?

Mi spiego meglio. Supponiamo che io voglia usare nel mio programma una funzione funz() scritta da qualcuno. Ad ogni modo non posso avere la certezza che questa funzione funz() sia stata scritta bene e che non causera il suddetto errore provocando l'uscita dal mio programma. Allora vorrei ad esempio invocare la funzione funz() all'interno di un costrutto come try/catch (uso la terminologia java) che catturi l'errore, nel senso che l'errore provoca l'uscita dalla funzione che l'ha causato, ma non dal programma, permettendomi di gestire la cosa. In genere le eccezioni funzionano cosi, nel senso che se nessuno si preoccupa di "acchiapparle" possono farti uscire dal programma, ma se le catturri il programma non termina.
Non so se sia possibile, ma ne dubito, visto che quando accade un segmentation fault c'e' ben poco da fare , visto che l'errore si ripercuote in generale anche sul resto dell'applicazione.
Per fare un esempio:

Codice:
int x = 10;

void foo()
{
    int* p = &x;
    while( --p )
        *p = 0;
}

int main()
{
    foo();
}
con un codice del genere non c'e' la speranza di limitare i danni alla funzione chiamata. Quel che e' peggio, con una funzione di poco differente sarebbe possibile fare in modo che la chiamata ritorni senza problemi, ma che salti fuori un segmentation fault in un momento successivo.
/\/\@®¢Ø è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Ecovacs Deebot X12 OmniCyclone: lava grazie a FocusJet Ecovacs Deebot X12 OmniCyclone: lava grazie a Fo...
Narwal Flow 2: la pulizia di casa con un mocio a nastro Narwal Flow 2: la pulizia di casa con un mocio a...
Tastiera gaming MSI GK600 TKL: switch hot-swap, display LCD e tre modalità wireless Tastiera gaming MSI GK600 TKL: switch hot-swap, ...
DJI Osmo Pocket 4: la gimbal camera tascabile cresce e ha nuovi controlli fisici DJI Osmo Pocket 4: la gimbal camera tascabile cr...
Sony INZONE H6 Air: il primo headset open-back di Sony per giocatori Sony INZONE H6 Air: il primo headset open-back d...
Falsa partenza per l'app della verifica ...
PRAGMATA è un successo: raggiunto...
Privacy, il Garante multa Poste Italiane...
Aramco ribalta il concetto di 'ibrido'. ...
Apple cambia tutto: Tim Cook lascia il t...
Dyson Supersonic Travel: il nuovo asciug...
Huawei punta sul canale europeo: per il ...
Ubuntu 26.04: le GPU guadagnano il 17% i...
La Commissione UE registra l'iniziativa ...
SSD troppo cari? La soluzione alla crisi...
Anteprima mondiale Hyundai IONIQ 3: segm...
Fintool sbarca su Microsoft 365: arrivan...
Hanno chiesto 1 dollaro per salvare un M...
Arriva AgentExchange, il marketplace di ...
Blizzard fa chiudere Turtle WoW: perché ...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 08:02.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Served by www3v