Shrinking file that is opened in read/write
-
27-09-2019 - |
문제
In perl:
I have a file opened in read/write, with an exclusive lock.
open( $f, "+< $filename" );
flock( $f, LOCK_EX );
If I write more data to the file than it previously held, the file will grow.
If I write less data, my new contents are at the beginning, but the old contents are still there at the end of the file.
This isn't surprising, however it's not what I want.
Is there a simple way to shrink the file while it is opened in read/write? Basically I want to tell it to end the file at exactly this byte position.
I know I can open it differently, and I'm considering doing that, but a one line fix would be nice.
해결책
다른 팁
I actually don't know about perl, but since ftruncate(2)
would be the C function, maybe this helps?
제휴하지 않습니다 StackOverflow