Cosa significa ritorno a zero in linguaggio C?


Migliore risposta

Presumo che tu stia parlando della funzione “main ()”?

In UNIX / Linux, dove C è stato inventato (e forse in altri sistemi operativi), quando un programma esce, restituisce uno “stato di uscita” che il sistema che lo ha avviato in esecuzione può utilizzare per sapere se è riuscito o meno.

Un risultato restituito pari a zero significa “Tutto ha funzionato bene!” – un risultato diverso da zero indica una sorta di codice di errore.

Questo non viene utilizzato molto (se non del tutto) in ambienti grafici in cui le persone lanciano programmi da unicona o qualcosa del genere. Ma nelle applicazioni a riga di comando, è una manna dal cielo.

Prendiamo ad esempio lo strumento “make”, che viene utilizzato per compilare e collegare applicazioni complicate. I vari compilatori e linker eseguono un “return 0” quando il programma su cui stanno lavorando è stato compilato correttamente, oppure “restituiscono 1” se non è stato compilato.

Il programma “make” esamina il return stato di ogni programma che esegue – e interrompe la compilazione se uno di essi restituisce qualcosa di diverso da zero.

Questa è una cosa davvero utile.

Quindi ho un programma che ho scritto fa un po di elaborazione delle immagini. Se il file che legge è danneggiato, fa un “ritorno 2” – se il file non esiste, fa un “ritorno 1” e solo se tutto ha funzionato bene “restituisce 0”.

Ora, se ho un programma complicato da costruire che ha immagini incorporate nel suo pacchetto di rilascio, posso fare in modo che il mio Makefile attivi il programma di elaborazione delle immagini e, se fallisce per qualche motivo, interromperà lesecuzione di “make”, quindi può risolverlo.

Tutti gli strumenti della riga di comando UNIX / Linux restituiscono un valore diverso da zero in caso di errore, quindi anche se si utilizza semplicemente il programma “rm” standard per eliminare un file, verrà eseguito un “Return 0” se il file è stato eliminato con successo o “return 1” se non è stato possibile eliminarlo per qualsiasi motivo.

Alcuni programmi restituiscono codici diversi a seconda di cosa è andato storto, ma questo è abbastanza insolito.

Nota anche che quando chiami la funzione “exit (0)” – il parametro “0” è anche lo stato di ritorno … quindi fai “exit (0)” quando le cose funzionano alla grande e ” exit (1) “quando non lo sono.

Rispondi

Cè a In molti posti diversi potresti eseguire unistruzione return 0 in C, quindi questa domanda otterrà una varietà di risposte.

Lascia rispondo a un caso specifico:

int main(int argc, char *argv[])

{

...

return 0;

}

Perché restituiamo 0 da main?

Nella famiglia di sistemi operativi * IX, esemplificata prima da UNIX e poi da Linux, esiste un programma con un unico codice di uscita intero, utilizzato nominalmente per indicare il successo o il fallimento.

Nella maggior parte dei casi, un valore di 0 indica successo e un valore diverso da zero è un fallimento, con il valore che di solito indica alcune informazioni di errore specifiche.

I programmi C e C ++ in esecuzione su sistemi * IX forniscono questo codice di uscita tramite un valore intero passato alla funzione exit () della libreria standard o il numero intero restituito da main () .

Quindi, in questo caso, restituiamo 0 da main per indicare ai sistemi * IX che il programma è terminato con un codice di successo.

-Mark

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *