LINUX.ORG.RU

История изменений

Исправление Moisha_Liberman, (текущая версия) :

Посмотрите /proc/$PID/fd/, там можно получить соответствие fd, открытому в процессе полному пути открытого файла. Например, для Qt Creator для Sailfish OS, с PID == 1462,

ls -la  /proc/1462/fd
, выдаст ряд файлов типа 84 -> /home/username/SailfishOS/documentation/nemo-qml-plugin-dbus190226.qch, т.е., у процесса с PID == 1462, в fd == 84, будет файл документации. И т.д. и т.п., там все файловые дескрипторы, открытые данным процессом.

На всякий случай допишу что в /proc/$PID/fdinfo есть данные о текущем положении в файле и т.д. и т.п. Посмотрите man на proc.

В принципе, так-то, можно было бы и не писать хуки, а просто взять под наблюдение данную псевдо ФС и, как только появлялся бы новый каталог с новым pid, начинать отслеживать подкаталог fd... Но тут уже я не знаю как лучше.

Исходная версия Moisha_Liberman, :

Можно через proc опять же.

Посмотрите /proc/$PID/fd/, там можно получить соответствие fd, открытому в процессе полному пути открытого файла. Например, для Qt Creator для Sailfish OS, с PID = 1462,

ls -la  /proc/1462/fd
, выдаст ряд файлов типа 84 -> /home/username/SailfishOS/documentation/nemo-qml-plugin-dbus190226.qch, т.е., у процесса с PID == 1462, в fd == 84, будет файл документации. И т.д. и т.п., там все файловые дескрипторы, открытые данным процессом.

На всякий случай допишу что в /proc/$PID/fdinfo есть данные о текущем положении в файле и т.д. и т.п. Посмотрите man на proc.

В принципе, так-то, можно было бы и не писать хуки, а просто взять под наблюдение данную псевдо ФС и, как только появлялся бы новый каталог с новым pid, начинать отслеживать подкаталог fd... Но тут уже я не знаю как лучше.