On Wed, Mar 18, 2009 at 07:30:01PM -0400, Kris Maglione wrote:
> On Thu, Mar 19, 2009 at 12:16:10AM +0100, Martin Kraus wrote:
>> Basicaly I'd expect this not to work, since wmiir is reading and at the same
>> time overwriting the data. It had worked as far as I've tried. Is it because
>> wmiir first reads all the data and then outputs it so that the other wmiir
>> write will just overwrite alread read data, or have I been lucky and reading
>> from the file was just always quicker then writing to it?
>>
>> Simply put, can I safely use the above syntax or should I read it into a
>> variable and then overwrite it?
>
> Well, you can safely use it as long as you have less than about 8K of 
> colrules. It actually works because wmii truncates those files to the 
> last byte written on every write, but wmiir doesn't write anything to the 
> filesystem until it recieves something from stdin. Since it won't recieve 
> anything until the first wmiir finishes its read, you're fine as long as 
> the first read returns the whole file (which it will if it's under 8K).
>
> So, that was more than you asked for. How about this: I'll just add a -a 
> flag to 'wmiir write'.

Thanks. I thought as much. I realised I can actually have a look at the source 
since it is open:) Even with my rusty C knowledge it is quite obvious once I've
started using a bit of that thing of mine called brain. Sometimes I think I'm
getting too old.

thanks for the complete explanation.

mk

Reply via email to