Req #65222 [Opn]: Allow big-values (float) in size/offset for file open/read/write/seek functions
| From: | helpdesk at dekho-ji dot com | Date: | Tue, 09 Jul 2013 11:18:47 +0000 |
| Subject: | Req #65222 [Opn]: Allow big-values (float) in size/offset for file open/read/write/seek functions | ||
| References: | 1 | Groups: | php.bugs |
| Request: | Send a blank email to php-bugs+get-180144@lists.php.net to get a copy of this message | ||
Edit report at https://bugs.php.net/bug.php?id=65222&edit=1
ID: 65222
User updated by: helpdesk at dekho-ji dot com
Reported by: helpdesk at dekho-ji dot com
Summary: Allow big-values (float) in size/offset for file
open/read/write/seek functions
Status: Open
Type: Feature/Change Request
Package: Filesystem function related
Operating System: All
PHP Version: 5.5.0
Block user comment: N
Private report: N
New Comment:
This code DOES NOT work, so ignore it -
2) I currently use fseek SEEK_CUR with 2GB jump offsets and loop it till I finally reach the
required BIG offset. It uses simple recursion. 5 lines of code. But if this can be done natively in
core system, that will be great benefit for people dealing with huge size files and relevant
operations.
Previous Comments:
------------------------------------------------------------------------
[2013-07-09 09:33:41] helpdesk at dekho-ji dot com
Description:
------------
Allow big-values (float) in size/offset for file open/read/write/seek functions
All file system functions currently are defined with INT params for size/offset/length/bytes flds.
Can this be upgraded so that it now accepts long values (floats with 0 decimals).
For ex - string file_get_contents ( string $filename [, bool $use_include_path = false [, resource
$context [, int $offset = -1 [, int $maxlen ]]]] )
will become
string file_get_contents ( string $filename [, bool $use_include_path = false [, resource $context
[, FLOAT $offset = -1 [, FLOAT $maxlen ]]]] )
For the end-users, this will be 100% backward compatible and will offer additional func when people
specify float values.
Simple way to fix this -
1) I believe all file operations use fopen/fseek/fget as their base ? If yes, then these these funcs
can be changed to allow float values. Everything will then work smoothly.
2) I currently use fseek SEEK_CUR with 2GB jump offsets and loop it till I finally reach the
required BIG offset. It uses simple recursion. 5 lines of code. But if this can be done natively in
core system, that will be great benefit for people dealing with huge size files and relevant
operations.
Test script:
---------------
Allow big-values (float) in size/offset for file open/read/write/seek functions
All file system functions currently are defined with INT params for size/offset/length/bytes flds.
Can this be upgraded so that it now accepts long values (floats with 0 decimals).
For ex - string file_get_contents ( string $filename [, bool $use_include_path = false [, resource
$context [, int $offset = -1 [, int $maxlen ]]]] )
will become
string file_get_contents ( string $filename [, bool $use_include_path = false [, resource $context
[, FLOAT $offset = -1 [, FLOAT $maxlen ]]]] )
For the end-users, this will be 100% backward compatible and will offer additional func when people
specify float values.
Simple way to fix this -
1) I believe all file operations use fopen/fseek/fget as their base ? If yes, then these these funcs
can be changed to allow float values. Everything will then work smoothly.
2) I currently use fseek SEEK_CUR with 2GB jump offsets and loop it till I finally reach the
required BIG offset. It uses simple recursion. 5 lines of code. But if this can be done natively in
core system, that will be great benefit for people dealing with huge size files and relevant
operations.
Expected result:
----------------
Allow big-values (float) in size/offset for file open/read/write/seek functions
All file system functions currently are defined with INT params for size/offset/length/bytes flds.
Can this be upgraded so that it now accepts long values (floats with 0 decimals).
For ex - string file_get_contents ( string $filename [, bool $use_include_path = false [, resource
$context [, int $offset = -1 [, int $maxlen ]]]] )
will become
string file_get_contents ( string $filename [, bool $use_include_path = false [, resource $context
[, FLOAT $offset = -1 [, FLOAT $maxlen ]]]] )
For the end-users, this will be 100% backward compatible and will offer additional func when people
specify float values.
Simple way to fix this -
1) I believe all file operations use fopen/fseek/fget as their base ? If yes, then these these funcs
can be changed to allow float values. Everything will then work smoothly.
2) I currently use fseek SEEK_CUR with 2GB jump offsets and loop it till I finally reach the
required BIG offset. It uses simple recursion. 5 lines of code. But if this can be done natively in
core system, that will be great benefit for people dealing with huge size files and relevant
operations.
Actual result:
--------------
All file system functions currently are defined with INT params for size/offset/length/bytes flds.
Can this be upgraded so that it now accepts long values (floats with 0 decimals).
For ex - string file_get_contents ( string $filename [, bool $use_include_path = false [, resource
$context [, int $offset = -1 [, int $maxlen ]]]] )
will become
string file_get_contents ( string $filename [, bool $use_include_path = false [, resource $context
[, FLOAT $offset = -1 [, FLOAT $maxlen ]]]] )
For the end-users, this will be 100% backward compatible and will offer additional func when people
specify float values.
Simple way to fix this -
1) I believe all file operations use fopen/fseek/fget as their base ? If yes, then these these funcs
can be changed to allow float values. Everything will then work smoothly.
2) I currently use fseek SEEK_CUR with 2GB jump offsets and loop it till I finally reach the
required BIG offset. It uses simple recursion. 5 lines of code. But if this can be done natively in
core system, that will be great benefit for people dealing with huge size files and relevant
operations.
------------------------------------------------------------------------
--
Edit this bug report at https://bugs.php.net/bug.php?id=65222&edit=1