For Programmers: Free Programming Magazines  


Home > Archive > PHP Documentation > April 2005 > #32889 [Csd]: ftruncate doesn't move the file pointer









You are viewing an archived Text-only version of the thread. To view this thread in it's original format and/or if you want to reply to this thread please [click here]

 

Author #32889 [Csd]: ftruncate doesn't move the file pointer
Techtonik@Php.Net

2005-04-30, 8:56 am

ID: 32889
User updated by: techtonik@php.net
Reported By: techtonik@php.net
Status: Closed
Bug Type: Documentation problem
PHP Version: Irrelevant
New Comment:

Tnx. Now everything is clear.


Previous Comments:
------------------------------------------------------------------------

[2005-04-29 18:31:46] wez@php.net

The file pointer is not changed at all by PHP when you truncate.
This is consistent with ANSI ftruncate (man ftruncate).

You are responsible for sing explicitly if you require it.


------------------------------------------------------------------------

[2005-04-29 16:18:32] vrana@php.net

This bug has been fixed in the documentation's XML sources. Since the
online and downloadable versions of the documentation need some time
to get updated, we would like to ask you to be a bit patient.

Thank you for the report, and for helping us make our documentation
better.

"The file pointer is changed only in append mode. In write mode,
additional fs() call is needed."

------------------------------------------------------------------------

[2005-04-29 13:04:11] techtonik@php.net

Something like "Warning: Truncate doesn't change position of the file
pointer. Adjust the pointer with fs to write to the end of the file
after truncate operation in modes other than "a" and "a+"." ?

Examples:
<?php

$fh = fopen("file.txt","w+");
fwrite($fh, "newfile"); // file contains string 'newfile'
ftruncate($fh, 3);
fs($fh, 0, SEEK_END);
fwrite($fh, "contents"); // file contains 'newcontents'
fclose($fh);

?>

<?php

$fh = fopen("file.txt","w+");
fwrite($fh, "newfile"); // file contains string 'newfile'
ftruncate($fh, 3);

fwrite($fh, "contents"); // file contains 'new contents'
fclose($fh);

?>

------------------------------------------------------------------------

[2005-04-29 12:22:17] tony2001@php.net

"The file pointer is not changed."
(c) man ftruncate

------------------------------------------------------------------------

[2005-04-29 12:12:57] techtonik@php.net

On the second thought it doesn't seem like a feature.

------------------------------------------------------------------------

The remainder of the comments for this report are too long. To view
the rest of the comments, please view the bug report online at
http://bugs.php.net/32889

--
Edit this bug report at http://bugs.php.net/?id=32889&edit=1

Sponsored Links







Also available: Server administration forum archive | Web Design forum archive | Software forum archive | Hardware reviews archive

Copyright 2009 codecomments.com