ExtMail服务器社区's Archiver

wxd5981 发表于 2009-9-17 10:53

read函数

read函数(fread)。  read函数负责从文件句柄中读取指定数量的字节,并将这些字节放在标量型变量中。读者如果熟悉C的标准I/O函数fread的话,就会发现Perl的read函数也是以相同方式处理I/O缓冲的。为了提高效率,read函数并不是一次读取一个字节,而是读取一块数据并保存到临时存储区中。然后,C的fread函数与Perl的read函数会从临时缓冲区将数据一次一个字节地传送给程序。(sysread函数可用于模拟C的底层I/O函数read。)该函数会返回读取的字节总数;或者在发生错误时,返回未定义的数字。如果碰到了EOF(文件结束符),则返回0。
在Perl中,print函数(而不是write函数)负责输出read函数返回的实际字节。Perl的print函数类似于C中的fwrite函数。
格式
[table=400][tr][td]read(FILEHANDLE, SCALAR, LENGTH, OFFSET);
read(FILEHANDLE, SCALAR, LENGTH);[/td][/tr][/table]示例18.24
[table=400][tr][td](The Script)
1 open(PASSWD, "/etc/passwd") || die "Can't open: $!\n";
2 $bytes=read (PASSWD, $buffer, 50);
3 print "The number of bytes read is $bytes.\n";
4 print "The buffer contains: \n$buffer";
(Output)
3 The number of bytes is 50.
4 The buffer contains:
root:YhTLR4heBdxfw:0:1:Operator:/:/bin/csh
nobody:[/td][/tr][/table]解释
1. 通过文件句柄PASSWD打开并读取文件/etc/passwd。
2. read函数尝试从文件句柄中读取50个字节,并将读到的字节数返回给标量$byte。

fengyong 发表于 2010-1-23 18:23

:lol 最近在学visualc++2008

页: [1]

Powered by Discuz! Archiver 7.0.0  © 2001-2009 Comsenz Inc.