perl - mostrar - ¿cuáles son las etiquetas en wp?
Sobre la read
:
-
read
admite capas PerlIO. -
read
funciona con cualquier identificador de archivo Perl [1] . -
read
buffers. -
read
obtiene datos del sistema en bloques de tamaño fijo de 8 KiB [2] . -
read
puede bloquear si hay disponibles menos datos de los solicitados [3] .
Acerca de sysread
:
-
sysread
no es compatible con las capas PerlIO (lo que significa que requiere un asa binaria sin procesar). -
sysread
solo funciona con los identificadores de archivos Perl que se asignan a un identificador / manejador de archivos del sistema [4] . -
sysread
no almacena en búfer. -
sysread
realiza una sola llamada al sistema. -
sysread
regresa inmediatamente si los datos están disponibles para ser devueltos, incluso si la cantidad de datos es menor que la cantidad solicitada.
Resumen y conclusiones:
-
read
funciona con cualquier identificador de archivo Perl, mientras quesysread
está limitado a los identificadores de archivo Perl asignados a un manejador / descriptor de archivo del sistema. -
read
no es compatible conselect
[5] , mientras quesysread
es compatible conselect
. -
read
puede realizar decodificación por ti, mientras quesysread
requiere que hagas tu propia decodificación. -
read
debe ser más rápido para lecturas muy pequeñas, mientras quesysread
debe ser más rápido para lecturas más grandes.
Notas:
Estos incluyen, por ejemplo, identificadores de archivos atados y aquellos creados con
open(my $fh, ''<'', /$var)
.Antes del 5.14, Perl leyó en 4 bloques KiB. Desde 5.14, el tamaño de los bloques es configurable cuando construyes
perl
, con un valor predeterminado de 8 KiB.En mi experiencia,
read
devolverá exactamente la cantidad solicitada (si es posible) al leer de un archivo simple, pero puede devolver menos al leer desde un conducto. Estos resultados no están de ninguna manera garantizados.fileno
devuelve un número no negativo para estos. Estos incluyen, por ejemplo, identificadores que se leen desde archivos sin formato, desde tuberías y zócalos, pero no los que se mencionan en [1].Me refiero al uno de cuatro argumentos llamado por IO :: Select .