slush (čtvrtek 15 Červenec 2010 11:35:04): > Funguje. Musim rict "bohuzel", protoze duvodu, proc by melo zapnute > bufferovani preskakovat EOF nerozumim. Protoze nectes stranku primo od kernelu, ale jen nejaky buffer udrzovany libc? Urcite s tim bude mit souvislost w+/a+ rezim - AFAIK ma tohle svoje vlastni problemy s konkurencnim pristupem ktery by s tim mohly souviset.
> Taky nevidim souvislost, proc > problem resi preseekovani na aktualni pozici. Protoze to vysype buffer, takze pozice kterou ma kernel ve file deskriptoru odpovida tomu co ma libc. Samozrejme by slo po kazdy operaci volat flush(), ale tim by tak nejak zmizel duvod vubec bufferovani pouzivat :-) > Budu muset jeste > popremyslet, ktery hack je mensi zlo. 1) Nepouzivat w+ ale presypavat data z jednoho fd do druheho, a pak udelat rename(). Jako bonus mas bezpecny fallback, kdyz se neco pos..., smazes novy soubor a mas nezpracovany, ale aspon konzistentni data. 2) Pokud mermomoci potrebujes r/w pristup, tak je lepsi si cely soubor mmapnout, coz cely ten bufferovaci cirkus v libc obchazi. _______________________________________________ Python mailing list [email protected] http://www.py.cz/mailman/listinfo/python
