1. Procese Windows; comunicaţii prin pipe şi IPC 2
1. Procese Windows; comunicaţii prin pipe şi IPC 2
1. Procese Windows; comunicaţii prin pipe şi IPC 2
- TAGS
- procese
- pipe
- www.cs.ubbcluj.ro
You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
<strong>Procese</strong> <strong>Windows</strong>; <strong>comunicaţii</strong> <strong>prin</strong> <strong>pipe</strong> <strong>şi</strong> <strong>IPC</strong> - 6 -<br />
hFisier –handle-ul fisierului în care se va scrie<br />
lpBuf –pointer la datele care se vor scrie în fi<strong>şi</strong>er<br />
nNrOctetiDeScris –număr de octeţi de scris<br />
lpNumarOctetiScrisi –pointer la numărul de octeţi scri<strong>şi</strong> efectiv<br />
lpStructIO –de obicei are valoarea NULL<br />
BOOL ReadFile ( HANDLE hFisier, LPCVOID lpBuf, DWORD nNrOctetiDeCitit,<br />
LPDWORD lpNumarOctetiCititi, LPOVERLAPPED lpStructIO);<br />
hFisier –handle-ul fisierului din care se va citi<br />
lpBuf –pointer la un bufer în care se vor citi datele<br />
nNrOctetiDeCitit –număr de octeţi de citit<br />
lpNumarOctetiCititi –pointer la numărul de octeţi citiţi efectiv<br />
lpStructIO –de obicei are valoarea NULL<br />
BOOL CloseHandle ( HANDLE hObject );<br />
hObject –handle-ul la un obiect deschis<br />
<strong>1.</strong>2.2. Funcţii de aşteptare a unor evenimente<br />
Win32 API oferă un set de funcţii de aşteptare pentru a permite unui program să î<strong>şi</strong> suspende<br />
temporar execuţia în aşteptarea unui eveniment. Funcţiile de aşteptare blochează execuţia<br />
programului până când criteriul specificat a fost îndeplinit. Tipul funcţiei de aşteptare<br />
determină criteriul utilizat. În timpul aşteptării procesul consumă foarte puţine resurse sistem,<br />
fiind vorba de o aşteptare pasivă – intrare în sleep. Există trei tipuri de funcţii de aşteptare:<br />
<strong>1.</strong> single-object: WaitForSingleObject, SignalObjectAndWait,<br />
WaitForSingleObjectEx<br />
2. multiple-object: WaitForMultipleObjects, WaitForMultipleObjectsEx,<br />
MsgWaitForMultipleObjects, MsgWaitForMultipleObjectsEx.<br />
3. alertable: MsgWaitForMultipleObjectsEx, SignalObjectAndWait,<br />
WaitForMultipleObjectsEx, WaitForSingleObjectEx<br />
Tabelul următor prezintă pe scurt rolurile <strong>prin</strong>cipalelor funcţii de aşteptare.<br />
Funcţie wait Descriere<br />
WaitForSingleObject() Aşteaptă după un anumit obiect ca acesta să<br />
ajungă în starea setat (de exemplu<br />
terminarea unui proces sau valoarea pozitiva<br />
a unui semafor).<br />
WaitForSingleObjectEx() Ca <strong>şi</strong> precedentul, plus aşteptarea a altor<br />
două evenimente: terminarea unei operaţii<br />
de intrare ie<strong>şi</strong>re, sau sosirea unui apel<br />
asincron în threadul curent.<br />
WaitForMultipleObjects() Aşteaptă după o mulţime de obiecte. Ie<strong>şi</strong>rea<br />
din aşteptare se poate face fie când unul<br />
dintre obiecte este setat, fie când toate<br />
obiectele ajung în starea setat.<br />
WaitForMultipleObjectsEx() Ca <strong>şi</strong> precedentul, plus aşteptarea celor două<br />
evenimente specificate în cazul funcţiei<br />
WaitForSingleObjectEx.