Vitajte na [www.pocitac.win] Pripojiť k domovskej stránke Obľúbené stránky
Tu je rozpis ich významu:
* Účinnosť: Používanie čísel je efektívnejšie ako používanie reťazcov (napríklad názvy funkcií). Vyhľadávanie čísel sú oveľa rýchlejšie ako vyhľadávanie reťazcov.
* abstrakcia: Poskytujú úroveň abstrakcie. Rozhranie systémového hovoru je konzistentné bez ohľadu na konkrétne podrobnosti o implementácii každej funkcie volania systému.
* prenosnosť (s upozorneniami): Aj keď samotné čísla * čísla * * nie sú nevyhnutne prenosné v rôznych systémoch podobných UNIX (napr. Linux, MacOS, BSD), * Názvy * systémových hovorov sú často (hoci ich správanie môže mať jemné rozdiely). Súbory hlavičiek poskytujú mapovanie medzi symbolickými názvami a číslami pre konkrétny systém. Vo všeobecnosti by ste vo svojom kóde používali symbolické názvy a spoliehali sa na kompilátor a linker na ich vyriešenie správnych čísel systémového hovoru.
* Zabezpečenie: Priame používanie čísel systémových hovorov ponúka menšiu ochranu ako používanie dobre vyrovnanej knižnice alebo API; Nesprávne využitie môže viesť k nehodám systému alebo k bezpečnostným zraniteľnostiam. Preto je používanie symbolických mien takmer vždy preferované.
Ako sa používajú: Program zvyčajne priamo nepoužíva čísla systémových hovorov. Namiesto toho používa rozhranie systémového hovoru (často poskytované knižnicou C), ktoré spracúva preklad z názvu funkcie k číslu. Súbory hlavičky (napríklad `Unistd.h` v c) definujú symbolické konštanty pre každé systémové volanie, čo umožňuje programátorom zapisovať prenosný kód pomocou týchto symbolických názvov. Kompilátor a linker sa starajú o mapovanie týchto symbolov na príslušné čísla volania systémov počas kompilácie a prepojenia.
Stručne povedané, čísla hovorov systémov sú identifikátory nízkej úrovne používané jadrom na odosielanie systémových hovorov, ponúkajú efektívnosť a vrstvu abstrakcie pre programátorov, ktorí by inak potrebovali priamo pracovať s rozhraniami jadra, čo je úloha všeobecne ponechaná autorom knižníc a samotného operačného systému.