Vitajte na [www.pocitac.win] Pripojiť k domovskej stránke Obľúbené stránky
Konkrétne:
* `errno` bude nastavený: Globálna premenná „Errno` bude nastavená na označenie chyby. Najpravdepodobnejšou hodnotou bude `enoExec` (chyba spustiteľného formátu), čo znamená, že súbor nie je platný spustiteľný pre aktuálnu architektúru alebo„ EACCES` (zamietnuté povolenie), čo znamená, že proces nemá povolenie na vykonanie súboru (aj keď je to platný spustiteľný). Ostatné chyby sú možné v závislosti od konkrétnych okolností (napríklad súbor, ktorý sa nenašiel, „enoent“).
* Pôvodný proces pokračuje: Pôvodný proces bude * pokračovať * beží. Hovor „Exec` sa vráti -1 a program bude pokračovať v vykonávaní od bodu po neúspešnom volaní„ Exec “. To je rozhodujúce; Nakoniec to nevykonáva. Váš kód by mal skontrolovať návratovú hodnotu `exec`, aby sa táto chyba elegantne spracovala. Jednoducho ignorovanie návratovej hodnoty môže viesť k jemným a ťažko-ťažkým debugovým chybám.
Príklad (c):
`` C
#include
#include
#include
#include
int main () {
int ret =execl ("./ neexistent_program", "neexistent_program", null);
if (ret ==-1) {
fprintf (stderr, "Execl zlyhal:%s \ n", strerror (errno));
návrat 1; // Uveďte chybu
}
// Tento riadok sa dosiahne iba vtedy, ak uspeje execl (čo v tomto príklade nebude)
printf („Toto by sa nemalo vytlačiť. \ n“);
návrat 0;
}
`` `
Tento kód sa pokúša vykonať neexistujúci program. Hovor `execl` zlyhá,` errno` bude nastavený (pravdepodobne `enoent`),` strerror (errno) `poskytne chybové hlásenie čitateľné človeka a program vytlačí chybu a ukončí sa so stavom nenulového stavu. Ak súbor existoval, ale chýba mu povolenie na vykonanie, „errno` by pravdepodobne bol` eacces`.
Stručne povedané, neúspešné volanie „exec` z dôvodu nevykonateľného súboru je chyba runtime, s ktorou sa musí vo vašom programe explicitne riešiť, aby sa zabránilo neočakávanému správaniu. Vždy skontrolujte návratovú hodnotu `exec` a primerane spracujte chyby.