🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Thread View: pl.comp.lang.perl
4 messages
4 total messages Started by Jacek Wojciechowski Fri, 16 Jan 1998 14:42
Problem z plikiem...
#888
Author: Jacek Wojciechowski
Date: Fri, 16 Jan 1998 14:42
7 lines
839 bytes
Mam problem z zapisem do pliku. Chodzi o to, ze kilka osob moze
dopisywac informacje do pewnej bazy danych w tej samej chwili i podczas
zapisu moze dojsc do straty danych. Slyszalem, ze mozna to ominac poprzez
tzw. "semafory". W jaki sposob?

Prosze o jakies rozwiazania.
Re: Problem z plikiem...
#889
Author: Piotr Piatkowski
Date: Fri, 16 Jan 1998 16:19
23 lines
1691 bytes
Jacek Wojciechowski <jack@infeco.pb.bialystok.pl> wrote:

: Mam problem z zapisem do pliku. Chodzi o to, ze kilka osob moze
: dopisywac informacje do pewnej bazy danych w tej samej chwili i podczas
: zapisu moze dojsc do straty danych. Slyszalem, ze mozna to ominac poprzez
: tzw. "semafory". W jaki sposob?

man perlipc, szukaj tekstu "Here's an example of a semaphore:"

: Prosze o jakies rozwiazania.

O nie, tak dobrze nie ma :-)

Ale tak w ogóle, jako semaforów można też użyć plików - wystarczy 
przed zapisem spróbować utworzyć plik o z góry określonej nazwie (np.
/tmp/.moj_genialny_program.lock), używając sysopen z flagą O_EXCL, 
oznaczającą że istnienie pliku powoduje błąd. I jeżeli się nie uda - 
to znaczy że inny program właśnie zapisuje. Wtedy trzeba chwilę 
poczekać i spróbować znowu. Oczywiście po zakończeniu krytycznej 
operacji należy plik usunąć.

-- 
Piotr Piątkowski, Uczelniane Centrum Informatyki, AGH Krakow, POLAND
Re: Problem z plikiem...
#890
Author: Mariusz Krukowski
Date: Mon, 19 Jan 1998 08:48
11 lines
1040 bytes
Jacek Wojciechowski wrote:
> 
> Mam problem z zapisem do pliku. Chodzi o to, ze kilka osob moze
> dopisywac informacje do pewnej bazy danych w tej samej chwili i podczas
> zapisu moze dojsc do straty danych. Slyszalem, ze mozna to ominac poprzez
> tzw. "semafory". W jaki sposob?

Ja bym polecal tu raczej ktoras metode lock'owania pliku
(poszukaj flock lub lockf). Tylko pamietaj - zadna z tych
metod nie blokuje pliku sama z siebie - to trzeba odpowiednio
oprogramowac.
Re: Problem z plikiem...
#891
Author: Grzegorz Szyszl/o
Date: Tue, 20 Jan 1998 10:52
27 lines
1998 bytes
Mariusz Krukowski <kruk@it.pl> wrote:
>Jacek Wojciechowski wrote:
>> 
>> Mam problem z zapisem do pliku. Chodzi o to, ze kilka osob moze
>> dopisywac informacje do pewnej bazy danych w tej samej chwili i podczas
>> zapisu moze dojsc do straty danych. Slyszalem, ze mozna to ominac poprzez
>> tzw. "semafory". W jaki sposob?
>
>Ja bym polecal tu raczej ktoras metode lock'owania pliku
>(poszukaj flock lub lockf). Tylko pamietaj - zadna z tych
>metod nie blokuje pliku sama z siebie - to trzeba odpowiednio
>oprogramowac.

mozna tez robic jak sendmail.
czyli robisz katalog ktory bedzie kolejka, i tworzysz plik
bedacy takim rozkazem modyfikacji bazy. robisz to z rozszerzeniem np. .rob
po zakonczeniu operacji na tym pliku, zmieniasz mu nazwe na taka sama
z rozszerzeniem  .gotowe   . drugi program, tym razem juz pojedynczy,
powinien kolejno przetwarzac pliki *.gotowe i je usuwac.
wprowadza to pewne opoznienie pomiedzy wprowadzeniem danych, a pojawieniem
sie ich w bazie. czasami ma to sens, czasami nie ma :)

-- 
/===================================\    oOOo      W temperaturze zera
| http://avalon.wbc.lublin.pl/~znik/ \===\__/==\   bezwzglednego swiatlo
| Grzegorz Szyszlo   mailto:znik@wbc.lublin.pl |   zmienia postac
\==============================================/   alotropowa   (by Znik)
Thread Navigation

This is a paginated view of messages in the thread with full content displayed inline.

Messages are displayed in chronological order, with the original post highlighted in green.

Use pagination controls to navigate through all messages in large threads.

Back to All Threads