Можно ли получить указатель на дескриптор процесса в модуле ядра? Если это возможно, пожалуйста, напишите как? Мне нужно найти все файлы, открытые процессом, и их значения смещения для каждого файлового дескриптора ....
Сканирует файловую систему proc в поисках процессов с открытыми файловыми дескрипторами. Однако вы не можете обнаружить смещения в дескрипторах открытых файлов.
Я обнаружил, что получил указатель на дескриптор процесса ... функция объявлена в linux / sched.h
struct task_struct find_task_by_pid(pid_t pid) .. Я думаю, что могу использовать этот дескриптор процесса, чтобы следовать за дескриптором файла и его смещениями ... Спасибо всем за поддержку
struct task_struct find_task_by_pid(pid_t pid)
Ну, я не знаю, как получить это из модуля ядра, но есть много способов получить его из обычного куска кода ... Не очень эффективные, то есть Начнем с того, как это делают lsof и другие подобные утилиты, и перейдем к / proc / $ pid / fd
Я не уверен, чего вы пытаетесь достичь, обычно всего лишь выполняется в контексте данного идентификатора процесса. Это всегда доступны для вас через «текущий» глобальный. Если вы хотите найти произвольный дескриптор процесса затем find_task_by_pid, вероятно, что ты хочешь. Вся информация о процессе поступает из task_struct.