ID:               42066
 Updated by:       [EMAIL PROTECTED]
 Reported By:      kraghuba at in dot ibm dot com
-Status:           Open
+Status:           Closed
-Bug Type:         Filesystem function related
+Bug Type:         Documentation problem
 Operating System: *
 PHP Version:      5CVS-2007-07-22 (snap)
-Assigned To:      
+Assigned To:      bjori
 New Comment:

>From man ftruncate(2): "The file offset is not changed."

I've fixed the docs.


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

[2007-07-22 12:04:27] kraghuba at in dot ibm dot com

Description:
------------
The file pointer position is not changed when a file opened in append
mode is truncated using ftruncate() function. As per the documentation
of ftruncate() function, the file pointer should be changed.

http://in2.php.net/manual/en/function.ftruncate.php
from doumentation: 
...
Note:  The file pointer is changed only in append mode. In write mode,
additional fseek()  call is needed.
...

This is applicable to php5 as well as php6. 
checked it on WinXP and RHEL 5.

Reproduce code:
---------------
<?php
  $fp = fopen("test.txt", "w");
  fwrite($fp, "testing ftrucate function with append mode");
  fclose($fp);
  var_dump( filesize("test.txt") );

  $fp = fopen ("test.txt", "a");
  var_dump( ftell($fp) );
  var_dump( ftruncate($fp, 10) );
  var_dump( ftell($fp) );
  fclose($fp);

  clearstatcache();
  var_dump( filesize("test.txt") );
?>


Expected result:
----------------
int(42)
int(0)
bool(true)
int(10)
int(10)



Actual result:
--------------
int(42)
int(0)
bool(true)
int(0)
int(10)



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


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

Reply via email to