yes, it's very possible. you might want to consider other methods. i have one idea, but it assumes two things (though it might be adaptable to other environments):

  1. unix-like system
  2. you know where those appends are coming from
my suggested alternate plan is this:
  1. move the file (`mv flat.file flat.file.tmp`)
  2. HUP any process that might still have the file open for writing, or wait until thy die themselves (see below)
  3. read and delete the temporary version
as i said, it relies on you knowing what might write to that file. if those programs open and write and re-close the file, then you can just wait the maimum time it might make one of them to finish. if they keep it open, however, you'll want to HUP them or otherwise force a close-reopen cycle. this sounds extreme, i know, but it's safe in more circumstances than you might think, for example, apache servers.

the reason this works at all is tha tif you move a file that another process already has open, the other process won't notice, and ill keep writing to it without a problem.

the problem, really, is that unix doesn't provide you with any way to delete from teh front of a file. maybe some day there will be an OS without that problem.

.

In reply to Re: correct usage of flock? by Vynce
in thread correct usage of flock? by cLive ;-)

Title:
Use:  <p> text here (a paragraph) </p>
and:  <code> code here </code>
to format your post, it's "PerlMonks-approved HTML":



  • Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
  • Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
  • Read Where should I post X? if you're not absolutely sure you're posting in the right place.
  • Please read these before you post! —
  • Posts may use any of the Perl Monks Approved HTML tags:
    a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, details, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, summary, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
  • You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
            For:     Use:
    & &amp;
    < &lt;
    > &gt;
    [ &#91;
    ] &#93;
  • Link using PerlMonks shortcuts! What shortcuts can I use for linking?
  • See Writeup Formatting Tips and other pages linked from there for more info.