perl.lt 
 
 Apie Straipsniai Funkcijos Parsisiųsti Nuorodos 
 
 Versija spausdinimui /Funkcijos/sysseek - nustatyti I/O pointerį handle, naudojamam sysread ir syswrite/Atgal 
 
 

  • sysseek FILEHANDLE,POSITION,WHENCE

    Nustato FILEHANDLE sisteminę poziciją baitais, naudojant sisteminį kreipinį lseek(2). FILEHANDLE gali būti išsireiškimas, kurio reikšmė duoda filehandle'o pavadinimą. WHENCE reikšmės yra 0 nustatant naują poziciją į POSITION, 1 nustatant poziciją į dabartinė plius POSITION ir 2 nustatant jį į EOF plius POSITION (dažniausiai neigiama).

    Pažymėtina, jog tai yra baitais: net jei filehandle'as buvo nustatyta dirbi su simboliais (pvz. naudojant :utf8 I/O layer), tell() gražins baitų, ne simbolių postūmį (nes įgyvendinant pastarąjį variantą, sysseek() veikimas taptų labai lėtas).

    sysseek() apiena normalų užbuferintą IO, taigi sumaišydamas jį su kitais nuskaitymais, kitais nei sysread, pvz. >&lt ar read()) print, write, seek, tell, ar eof gali įvesti painiavą.

    Aprašant WHENCE galima naudoti konstantas SEEK_SET , SEEK_CUR ir SEEK_END (failo pradžia, dabartinė pozicija, failo pabaiga) iš Fcntl modulio. Konstantų panaudojimas taip pat labiau pasiduoda pernešimui (portable) nei pasitikėjimas 0, 1 ir č. Pvz. "systell funkcijos aprašymui:

    	use Fcntl 'SEEK_CUR';
    	sub systell { sysseek($_[0], 0, SEEK_CUR) }

    Gražina naują poziciją arna nesėkmės atveju neapibrėžtą reikšmę. Nulinė pozicija gražinama kaip string'as "0 but true" ; tad sysseek gražina true sėkmės atveju ir false - nesėkmės, bet vis dar įmanoma lengvai nustatyti naują poziciją.

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