Strona 1 z 1
[c++] sprawdzanie czy jakiś proces korzysta z pliku
: 16 lut 2009, 02:38
autor: psysiu
witam,
jak w temacie, chciałbym sprawdzić z poziomu języka C/C++ czy jakiś proces korzysta (czyta/zapisuje) z pliku.
Wdzięczny za każdą pomoc.
Odp: [c++] sprawdzanie czy jakiś proces korzysta z pliku
: 16 lut 2009, 22:48
autor: el.pescado
Sprawdzić, czy czyta lub zapisuje jest trochę trudno, ale bardzo prosto można sprawdzić, czy proces ma otwarty plik (co jest warunkiem jego czytania/zapisywania do niego). Wystarczy przejrzeć katalog /proc/PID/fd, gdzie znajdują się dowiązania symboliczne (do odczytania na co wskazuje dowiązanie symboliczne można wykorzystać funkcję readlink(2)) do plików otwartych przez proces, indeksowane przez numery deskryptorów plików. PID to oczywiście numer procesu.
Odp: [c++] sprawdzanie czy jakiś proces korzysta z pliku
: 23 lut 2009, 09:01
autor: psysiu
Inna możliwość to poszukanie odpowiedzi w kodzie źródłowym lsof, ale mnie to trochę przytłoczyło.
Ponieważ głównie chodziło mi o procesy należące do tego samego projektu postanowiłem użyć po prostu file locks.