perl.lt 
 
 Apie Straipsniai Funkcijos Parsisiųsti Nuorodos 
 
 Versija spausdinimui /Funkcijos/ioctl - priklausantis nuo sistemos device control sisteminis iškvietimas/Atgal 
 
 
  • ioctl FILEHANDLE,FUNCTION,SCALAR

    Įdiegia ioctl(2) funkciją. Greičiausia pirmiausia reikės

        require "ioctl.ph";	# greičiausia /usr/local/lib/perl/ioctl.ph

    kad gauti teisingus funkcijos apibrėžimus. Jei ioctl.ph neegzistuoja arba neturi teisingų apibrėžimų reikės kapstytis patiems su C headerių pagalba, kaip kad <sys/ioctl.h>. (Yra Perl skriptas, pavadintas h2ph, kuris ateina su Perl ir gali pagelbėti, bet jis sudėtingas.) SCALAR bus nuskaitomas ir/arba rašomas, priklausomai nuo FUNCTION - SCALAR rodyklės į eilutę reikšmė bus perduodama kaip trečias argumentas faktinio ioctl kvietimo. (Jei SCALAR neturi eilutės reikšmės, bet turi skaitinę reikšmę, skaitinė reikšmė bus perduodama, o ne rodyklė į eilutės reikšmę. Garantuoti, kad tai bus tiesa, reikia pridėti 0 prie skaliaro prieš jį naudojant.)pack ir unpack funkcijos gali būti reikalingos manipuliacijai su struktūrų reikšmėmis naudojamomis ioctl.

    ioctl gražinama reikšmė (ir fcntl) yra tokie:

     Jei OS gražina:		tada Perl gražina:
     -1	  		  neapibrėžtą reikšmę
     0	 		eilutė "0 but true"
     bet ką kita		    tą numerį

    Taigi Perl gražina true sėkmės atveju ir false nesėkmės, tačiau vis dar lengvai galima nustatyti tikrąją reikšmę, gražintą operacinės sitemos:

        $retval = ioctl(...) || -1;
    printf "System returned %d\n", $retval;

    Speciali eilutė "0 but true" yra atleidžiama nuo -w diskusijų apie nekorektiškus skaitinius vertimus.

 
 
 
2005.04.11 - 2012.05.21 © algirdas@perl.lt 
 Perl.lt programavimo savaitgaliai | Reklaminiai skydeliai | Perl.lt kodas