Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/251.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/matlab/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 为什么我从“文件大小”中得到如此准确的结果?_Php - Fatal编程技术网

Php 为什么我从“文件大小”中得到如此准确的结果?

Php 为什么我从“文件大小”中得到如此准确的结果?,php,Php,当我运行此代码时: <?php $handle = fopen('/tmp/lolwut', 'w') or die("Cannot open File"); fwrite($handle, "1234567890"); fclose($handle); print_r(filesize('/tmp/lolwut')); ?> 我得到结果10,这是文件中正确的字符数 但是,由于文件系统块比这个大得多,我希望文件大小“向上舍入”到512字节甚至1KB。为什么不呢?不要将

当我运行此代码时:

<?php
$handle = fopen('/tmp/lolwut', 'w') or die("Cannot open File");    
fwrite($handle, "1234567890");
fclose($handle);

print_r(filesize('/tmp/lolwut'));
?>

我得到结果
10
,这是文件中正确的字符数

但是,由于文件系统块比这个大得多,我希望文件大小“向上舍入”到512字节甚至1KB。为什么不呢?

不要将“文件大小”与“磁盘上的文件大小”混淆;给你的是前者,不是后者

虽然没有明确的文档说明,但是基本上是根据
stat
实现的
filesize
,并且在Linux上:

所有这些系统调用都返回一个
stat
结构,其中包含以下字段:

struct stat {
    // [...]
    off_t     st_size;    /* total size, in bytes */
    blksize_t st_blksize; /* blocksize for file system I/O */
    blkcnt_t  st_blocks;  /* number of 512B blocks allocated */
    // [...]
};
您期望的值是
st_blocks*st_blksize
,但不管怎样,“true”filesize
st_size
都是可用的


()

这个问题是为解决这个问题而设计的。对于com来说,这个问题很好。维基,但是1。你的链接与这个问题有什么关系?(关于缓存)和2。为什么
filesize
返回的大小比文件使用的小,这不是一个更好的标题吗?还是类似的?@dtech:这是一个评论链接。阅读评论。可能是一个社区维基问题?没有必要强迫这是一个CW,也没有必要拒绝承认某人的辛勤工作。也就是说,我建议保留这个问题,这似乎不像有人会真正问的那样。我的建议是“为什么
filesize
与磁盘上的文件大小不一致?”