Cytat(Crozin @ 20.07.2012, 17:53:05 )

Zdajesz sobie sprawę z tego, że ta baza jest kompletnie nieprzygotowana do pracy z wieloma zapisami na raz - wewnętrzna struktura bazy może zostać uszkodzona w takim przypadku.
Zdaję sobie z tego sprawę. Niestety na takim szajsie pracuje nasz program magazynowy, a ja muszę pobierać dane z tego programu. Ostatnio pojawił się problem z zapisem danych. Podczas kiedy ja pracowałem na plikach poprzez PHP ktoś starał się zaksięgować stany magazynowe (prawdopodobnie tak było, bo pewności nie mam) i coś poszło nie tak, bo część danych nie została zapisana. Dlatego podejrzewam, że mogło mieć to coś wspólnego dostępem do pliku.
A gdyby tak kopiować plik i pracować na kopii? Czy podczas kopiowania plików dostęp do pliku źródłowego jest zablokowany? Kopiowanie trwa nieco ponad 1sek. ale i tak to duże ryzyko. Dlatego chciałbym wiedzieć, czy kopiowanie tego pliku byłoby w 100% bezpieczne.
Cytat(Crozin @ 20.07.2012, 17:53:05 )

Nie są blokowane, są po prostu otwarte (przez skrypt), a jak zapewne wiesz, plik który jest otwarty przez jakiś program nie może mieć zmienionej nazwy albo zostać usuniętym.
Ale próbowałem zrobić test na takim skrypcie. I przez pierwsze 20sek. nie mogłem zmienić nazwy pliku. Ale już po upływie 20sek. mogłem zmienić nazwę, mimo, że skrypt nadal się wykonywał.
<?php
$dbase = dbase_open('...', 0);
if ($dbase === false) {
}
dbase_close($dbase);
?>