读书人

关于文件操作的有关问题

发布时间: 2012-03-29 12:53:13 作者: rapoo

关于文件操作的问题
看到一些代码中分配内存是这样的
fseek(fp, 0, SEEK_END);
len = ftell(fp);
buf = (u8 *)malloc(len);
为什么要先定位到文件尾再取得文件的大小呢?不直接len = ftell(fp);

[解决办法]
直接len = ftell(fp);的话fp会在文件头
[解决办法]


ftell
(PHP 3, PHP 4, PHP 5)

ftell -- 返回文件指针读/写的位置
说明
int ftell ( resource handle )


返回由 handle 指定的文件指针的位置,也就是文件流中的偏移量。

如果出错,返回 FALSE。

文件指针必须是有效的,且必须指向一个通过 fopen() 或 popen() 成功打开的文件。 在附加模式(加参数 "a" 打开文件)中 ftell() 会返回未定义错误。

例子 1. ftell() 例子

<?php

// 打开文件并读些数据
$fp = fopen("/etc/passwd", "r");
$data = fgets($fp, 12);

// 现在指针到哪里了?
echo ftell($fp); // 11

fclose($fp);

?>


http://php.cn/php/function.ftell.html

读书人网 >VC

热点推荐