当前位置: 代码迷 >> VC >> 关于文件操作的有关问题
  详细解决方案

关于文件操作的有关问题

热度:620   发布时间:2013-02-25 00:00:00.0
关于文件操作的问题
看到一些代码中分配内存是这样的
  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
  相关解决方案