#32889 [Fbk->Opn]: ftruncate doesn't move the file pointer

From: Date: Fri, 29 Apr 2005 11:04:12 +0000
Subject: #32889 [Fbk->Opn]: ftruncate doesn't move the file pointer
References: 1  Groups: php.doc 
Request: Send a blank email to phpdoc+get-969368097@lists.php.net to get a copy of this message
ID: 32889 User updated by: techtonik@php.net Reported By: techtonik@php.net -Status: Feedback +Status: Open Bug Type: Documentation problem PHP Version: Irrelevant New Comment: Something like "Warning: Truncate doesn't change position of the file pointer. Adjust the pointer with fseek 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); fseek($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); ?> Previous Comments: ------------------------------------------------------------------------ [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. ------------------------------------------------------------------------ [2005-04-29 11:36:13] techtonik@php.net Description: ------------ Note or warning here? http://www.php.net/manual/en/function.ftruncate.php Reproduce code: --------------- <?php // truncate doesn't move the file pointer to the end of the file $flog = fopen("text.txt", "w+"); fwrite($flog, "veeery veeery long string"); fseek($flog, -2, SEEK_END); ftruncate($flog, 6); fwrite($flog, "shortstr"); fclose($flog); ?> Expected result: ---------------- 0000000000: 76 65 65 65 72 79 20 73 &#9474; 68 6F 72 74 73 74 72 veeery shortstr Actual result: -------------- 0000000000: 76 65 65 65 72 79 20 00 &#9474; 00 00 00 00 00 00 00 00 veeery 0000000010: 00 00 00 00 00 00 00 73 &#9474; 68 6F 72 74 73 74 72 shortstr ------------------------------------------------------------------------ -- Edit this bug report at http://bugs.php.net/?id=32889&edit=1

« previous php.doc (#969368097) next »