Есть ли POSIX API которые могут помочь в отслеживании попыток доступа к определённым файлам (C/C++)?
Задача следующая:
Есть список файлов (например, пути к файлам в качестве аргументов командной строки), действия над которыми нужно отслеживать. Например, если какой-то процесс пытается что-то делать с файлом (читать/писать или вообще удалить его), то нужно допустим узнать PID и прервать его работу. Желательно чтобы всё это работало в фоновом режиме.
Очень хотелось бы понять какие posix api есть, которые могли бы помочь в этом. Знаю кое-что про stat() и таблицы файловых дескрипторов. Не ясно только как stat() может помочь в "предотвращении" доступа к файлу и как могут помочь таблицы файловых дескрипторов (не сканировать ведь proc/PID/fd для всех процессов). Есть ещё много различных api для работы файлами, но что-то не нашлось тех "подходящих" которые могли бы с этим помочь.
В общем, не понятно в какую сторону вообще смотреть и какие posix api для этих целей могли бы подойти.
"POSIX (Portable Operating System Interface for Unix) is simply a set of standards that define how to develop programs for UNIX (and its variants)". Следовательно мне нужно использовать API которые определенны стандартами POSIX, чтобы моя программа могла работать на любой UNIX-подобной системе. Как-то так думаю. Я лишь пытаюсь понять какие POSIX API могли бы подойти для моих целей. Обычно в мануалах к различным API пишут совместимость (например, для stat(2): CONFORMING TO: ... SVr4, 4.3BSD, POSIX.1-2001, POSIX.1.2008). Мне не обязательно нужно готовое решение моей задачи. Подойдут даже низкоуровневые api, которые можно было бы использовать в связке, для достижения нужной цели.