Klucze IPC
Next: Polecenie ipcs
Up: Podstawy
Previous: Identyfikatory IPC
  Contents
Klucze IPC
Aby otrzymać unikalne ID musimy posłużyć się kluczem. Klucz musi
zostać uzgodniony przez procesy klienta i serwera. Jest to pierwszy krok przy
tworzeniu aplikacji klient/serwer.
Kiedy używasz telefonu: aby dodzwonić się do kogoś musisz znać jego numer.
Dodatkowo, operator telefoniczny musi wiedzieć w jaki sposób połączyć ciebie.
Kiedy ta osoba odbiera tworzone jest połączenie.
W wypadku IPC Systemu V 'telefon' odpowiada bezpośrednio typowi używanego obiektu.
'Operator telefoniczny', lub metoda połączenia może być przyporządkowana kluczowi IPC.
Klucz może być za każdym razem ten sam, zakodowany w aplikacji. Jednak ma to swoją
wadę - istnieje możliwość, iż jest on już używany. Często korzysta się z funkcji
ftok() w celu utworzenia wartości klucza, który ma być użyty przez klienta i serwer.
FUNKCJA Z BIBLIOTEKI: ftok();
PROTOTYP: key_t ftok ( char *ścieżka, char proj );
ZWRACA: nową wartość klucza IPC jeżeli sukces
-1 - błąd, wartość errno odpowiada wywołaniu stat()
Zwracaną wartością jest klucz utworzony na podstawie kombinacji numeru i-węzła
i podrzędnego numeru urządzenia z pliku podanego w pierwszym argumencie wraz z
identyfikatorem projektu podanym jako drugi argument. To nie gwarantuje
unikalności, jednak aplikacja może sprawdzić czy nie zachodzi kolizja i powtórzyć
generację klucza.
key_t mójklucz;
mójklucz = ftok("/tmp/mojaapp", 'a');
W powyższym przykładzie klucz tworzony jest z kombinacji katalogu /tmp/mojaapp
z literą 'a'. Inną możliwością jest użycie bierzącego katalogu:
key_t mójklucz;
mykey = ftok(".", 'a');
Algorytm generacji klucza jest całkowicie zależny od programisty. Do póty, do póki
nie dopuszcza się do przypadku wyścigu, powieszenia (deadlocks) procesu każda metoda
jest dobra. W celu demonstracyjnym używamy ftok() zakładamy, że każdy klient
posiada unikalny katalog 'domowy', a to powinno dać nam wystarczające klucze.
Choć wartość klucza jest odbierana, używana jest w póżniejszych wywołaniach systemowych
w celu tworzenia lub dostępu do obiektów IPC.
Next: Polecenie ipcs
Up: Podstawy
Previous: Identyfikatory IPC
  Contents
2000-03-01
Wyszukiwarka
Podobne podstrony:
node245 T2YQJZD6LDQ6LP5OYUC3OHQJMT5QYEUMQNSNPTInode245node243node242 7L22GLKYOY7WCD2ENRGH2MBHLMAUTJL2GTKKYNYnode246 YIF4WCYAY6SJS2OLKTPEMD6TGPZD4BLGOW43G3Anode24 PDHWHKXXAJCE53SGAZZQAGL4RLNJ7ZXWLGOY4QYnode24node24 3ZDS5WHDJGYZQJTUOOHV6YJOOXTC2GUWSJC775Inode244node243 YS2T6SICTFF6CFMWRO7X5VPFRR7EJ4VCN3TKXFYnode24 2PNVCNM2PFRUZA3ENONWT4NSN4DPLHTMPZ3FH7Ynode241node244 D3H4Q5QNKWCUAFHHJWADTRR7OS7G5JGYHSPAIMQnode249 7JYBNHKY3DEZ42ROO3VGHKZUJVB2IRUD4MHHCUYnode247node24 1node248 C33U2NRXWJ5BBSGXFIODC6MPK44O246Y7WN2G7Ywięcej podobnych podstron