首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > VC >

关于文件操作的有关问题

2012-03-29 
关于文件操作的问题看到一些代码中分配内存是这样的fseek(fp, 0, SEEK_END)len ftell(fp)buf (u8 *)

关于文件操作的问题
看到一些代码中分配内存是这样的
  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

热点排行