Bug #76995 [Com]: fseek() breaks reading in read/append (a+) mode
| From: | spam2 at rhsoft dot net | Date: | Wed, 10 Oct 2018 15:03:30 +0000 |
| Subject: | Bug #76995 [Com]: fseek() breaks reading in read/append (a+) mode | ||
| References: | 1 | Groups: | php.bugs |
| Request: | Send a blank email to php-bugs+get-217509@lists.php.net to get a copy of this message | ||
Edit report at https://bugs.php.net/bug.php?id=76995&edit=1
ID: 76995
Comment by: spam2 at rhsoft dot net
Reported by: miloslav dot hula at gmail dot com
Summary: fseek() breaks reading in read/append (a+) mode
Status: Open
Type: Bug
Package: Streams related
PHP Version: 7.3.0RC2
Block user comment: N
Private report: N
New Comment:
but what is the bug?
> seeking in a+ mode is bad idea
> and the result of calling fseek() will be undefined
undefined is what it is - undfined - therw is no right/wrong for undefined
Previous Comments:
------------------------------------------------------------------------
[2018-10-10 14:58:08] miloslav dot hula at gmail dot com
Description:
------------
URL in a test script shows, how fseek() in 'a+' mode breaks contents reading.
Documentation of fopen() says, that fseek() is OK, but documentation of fseek() says, that seeking
in a+ mode is bad idea.
In documentation of fopen():
a+ - Open for reading and writing; place the file pointer at the end of the file. If the file does
not exist, attempt to create it. In this mode, fseek() only affects the reading position, writes are
always appended.
In documentation of fseek():
If you have opened the file in append (a or a+) mode, any data you write to the file will always be
appended, regardless of the file position, and the result of calling fseek() will be undefined.
Test script:
---------------
https://3v4l.org/gTXsR
------------------------------------------------------------------------
--
Edit this bug report at https://bugs.php.net/bug.php?id=76995&edit=1