Я занимаюсь курсом в операционных системах, и мы работаем в Linux (Red hat 8.0). Я пытаюсь реализовать открытый файл, закрыть трекер, который сохранит для каждого процесса историю файлов, которые он открывает и закрывает. Я ожидал, что sys_open, близко, также примет идентификатор процесса и что я могу использовать его для доступа к истории процесса, инициировавшего вызов, и его обновления (создание части обновления функций sysopen, close). Однако эти функции не принимают pid как параметр, поэтому я немного потерял, как связать файлы открытия/закрытия с процессом, который инициировал это. Мое единственное догадание состоит в том, что, поскольку в любой момент времени есть только один активный процесс, его метаданные должны быть глобальными в некотором роде, но я понятия не имею, где и как его найти. Любой совет будет принят во внимание.Как проверить, какой процесс был инициирован sys_open
1
A
ответ
3
Вы собираетесь делать это в пространстве ядра? Учитывая, что вы смотрели непосредственно на sys_open и т. Д., Которые находятся в пространстве ядра, IIRC, вы можете использовать текущий указатель, чтобы увидеть pid current
(current->pid
).
Смежные вопросы
- 1. JQuery: какой элемент HTML инициирован ajax
- 2. затмение: отладка программно инициирован процесс
- 3. Как проверить, какой процесс вызвал событие click
- 4. Как проверить, какой виджет был нажат?
- 5. Как проверить, какой элемент был вызван?
- 6. Как проверить, какой ребенок был выбор
- 7. Как проверить, какой ImageButton был запрограммирован?
- 8. Silverlight: Определите, какой элемент управления инициирован drag'n'drop
- 9. Как проверить, был ли файл изменен через другой процесс?
- 10. Linux: как проверить, был ли создан новый процесс?
- 11. C# - как проверить, если процесс был успешно запущен
- 12. Как узнать, как мой процесс был запущен
- 13. Есть ли способ увидеть, был ли FTP инициирован PHP?
- 14. ListBox.SelectedIndexChanged - можете ли вы определить, был ли пользователь инициирован?
- 15. NSKeyedUnarchiver на UIViewController, который был инициирован с UIStoryboard
- 16. Как проверить, какой процесс использует микрофон в данный момент?
- 17. Поиск того, какой процесс был убит Linux OOM killer
- 18. Java - Как проверить, какой тип исключения был брошен?
- 19. Как проверить, какой из <button> был нажат?
- 20. Как проверить, какой элемент был щелкнул в recyclerview ребенка
- 21. Как проверить, какой #define был скомпилирован в двоичный?
- 22. Magento: Как проверить, какой метод оплаты был выбран?
- 23. Как проверить, какой файл JNLP был выбран для запуска?
- 24. Как проверить, был ли использован какой-либо матплот-фильтр
- 25. Как проверить, какой класс был объектом, инициализированным в Objective C
- 26. Как проверить, был ли файл выбран JFileChooser?
- 27. Как проверить внутренний процесс Oracle?
- 28. Какой процесс был ответственен за событие, которое сигнализируется inotify?
- 29. Parallel.ForEach, как проверить процесс?
- 30. Какой процесс я начал?
Я думаю, что неправильно понял его вопрос. Каким-то образом я понял, что он хочет оставить его в ядре. –
@tinkertim - или, может быть, я неправильно понял ... Мы подождем и посмотрим :) – abyx
Нет, вы не правы, я хотел, чтобы это было в пространстве ядра. Благодарю. –