|
3 / 3 / 0
Регистрация: 22.09.2015
Сообщений: 124
|
||||||
Файловые дескрипторы,а точнее как их побороть09.06.2016, 08:05. Показов 3449. Ответов 21
Метки нет (Все метки)
Доброго времени суток
дали задание написать программу которая будет выводить число открытых файловых дескрипторов в системе программа вроде бы написана но вот незадача она работает только из под рута (что и естественно я ведь лезу вглубь папки proc а доступ туда только rootу и возможен). Но задача сделать так чтобы я смог получить эту информацию без прав root А как этого сделать ума не приложу. Собственно надеюсь на светлые умы форума Может есть какое то место в системе еще кроме proc откуда данную информацию можно достать
может это через IPC возможно сделать?
0
|
||||||
| 09.06.2016, 08:05 | |
|
Ответы с готовыми решениями:
21
Как под Windows прокинуть файловые дескрипторы через os.system или subprocess.Popen ? Что такое дескрипторы? дескрипторы устройсв? |
|
|
|
| 09.06.2016, 08:26 | |
|
Если я правильно понял ман, то доступ в прок возможно конфигурировать. http://man7.org/linux/man-pages/man5/proc.5.html
Откладывается ли инфа о декскрипторах где-то еще, без понятия.
0
|
|
|
174 / 170 / 19
Регистрация: 31.08.2010
Сообщений: 575
|
||||||||
| 09.06.2016, 16:12 | ||||||||
|
Можно сделать проще - распарсить вывод команды
Добавлено через 5 минут Если добавить awk, то можно сразу получить число открытых файловый дескрипторов:
0
|
||||||||
|
3 / 3 / 0
Регистрация: 22.09.2015
Сообщений: 124
|
|
| 09.06.2016, 18:32 [ТС] | |
|
TheAthlete, в если мне ещё потом может понадобиться для конкретного процесса та же самая история?проблема в том что потом прога зальётся на железку поэтому надо чтобы все работало от обычного пользователя ни каких рутов и паролей надо
Добавлено через 1 час 32 минуты TheAthlete, на железке нет lsof там busy box стоит а у него обрезанный Линукс А можно как то sudoers файл исправить программно ??или нет?
0
|
|
|
Жарю без масла
867 / 749 / 225
Регистрация: 13.01.2012
Сообщений: 1,702
|
|
| 09.06.2016, 18:36 | |
|
/proc/sys/fs/file-nr
0
|
|
|
3 / 3 / 0
Регистрация: 22.09.2015
Сообщений: 124
|
|
| 09.06.2016, 19:19 [ТС] | |
|
retmas, ну так это по всем процессам а если мне по одному надо узнать количество дескрипторов?думаю если принимать во внимание железку с урезанным Линукс надо как то переписать sudoers но как не могу понять
0
|
|
|
Жарю без масла
867 / 749 / 225
Регистрация: 13.01.2012
Сообщений: 1,702
|
|||
| 09.06.2016, 19:44 | |||
|
sudoers конечно можно изменить, например, так:
0
|
|||
|
3 / 3 / 0
Регистрация: 22.09.2015
Сообщений: 124
|
|
| 10.06.2016, 09:13 [ТС] | |
|
retmas, тут вопрос не в моем желании а вопрос в том что это должно работать на железке и так чтобы не прописывать на ней ничего в ручную
Запустил команду она заработала Поэтому и вопрос как сделать так чтобы права не мешали Добавлено через 12 часов 8 минут И еще один момент который я упустил к сожалению Есть у нас процесс у процесса есть какие то файловые дескрипторы А как можно узнать какие именно файлы открыты ?? Т е получается по дескриптору можно узнать имя файла насколько я понимаю только вот как это сделать? хотя бы в линуксе а желательно конечно узнать с помощью СИ
0
|
|
|
Жарю без масла
867 / 749 / 225
Регистрация: 13.01.2012
Сообщений: 1,702
|
|||
| 10.06.2016, 09:50 | |||
|
0
|
|||
|
3 / 3 / 0
Регистрация: 22.09.2015
Сообщений: 124
|
|
| 10.06.2016, 10:39 [ТС] | |
|
retmas, а команду можно целиком написать для какого нибудь процесса? а то что то не получается получить список фалов открытых а не дескрипторов
0
|
|
|
Жарю без масла
867 / 749 / 225
Регистрация: 13.01.2012
Сообщений: 1,702
|
||||||
| 10.06.2016, 10:59 | ||||||
|
как пример, выведет имя файла(девайса) для дескриптора 0 текущего процесса
0
|
||||||
|
3 / 3 / 0
Регистрация: 22.09.2015
Сообщений: 124
|
|
| 10.06.2016, 11:23 [ТС] | |
|
retmas, извини просто но правда как то не доходит
можешь например написать тоже самое например для firefox или gedit а то не могу понять мне надо знать какие именно файлы открыты не дескрипторы и т п и причем папка self тоже не возьму в толк
0
|
|
|
Жарю без масла
867 / 749 / 225
Регистрация: 13.01.2012
Сообщений: 1,702
|
|
| 10.06.2016, 11:50 | |
|
вместо self пишешь пид нужного процесса
для каждого файла из папки /proc/[pid]/fd/ делаешь lstat+readlink по образу и подобию коду выше Добавлено через 1 минуту /proc/self для текущего процесса значит то же, что /proc/[мой пид]
0
|
|
|
3 / 3 / 0
Регистрация: 22.09.2015
Сообщений: 124
|
||||||
| 10.06.2016, 13:27 [ТС] | ||||||
|
retmas, спасибо да все работает только проблема в том что если взять процесс который запущен не моим пользователем то я получаю дамп памяти что для меня не хорошо т к на железке я не знаю что запустил мой пользователь а что нет.
Суть в чем на железке есть некий процесс который следит за утечками и тп и я должен для этого процесса выводить файловые декрипторы и исходя из них еще и файлы которые он открыл и если в случае с выводом просто количества дескрипторов получилось обойти права подшаманив sudoers то как тут обойти не понятно но очевидно что lstat и readlinkне хватат прав нет мыслей как это можно обойти? Добавлено через 3 минуты на данный момент программа вот что представляет из себя
0
|
||||||
|
Жарю без масла
867 / 749 / 225
Регистрация: 13.01.2012
Сообщений: 1,702
|
||
| 10.06.2016, 14:12 | ||
|
0
|
||
|
3 / 3 / 0
Регистрация: 22.09.2015
Сообщений: 124
|
|
| 10.06.2016, 14:16 [ТС] | |
|
retmas, я ее не могу добавить
тогда у меня дамп памяти был при вызове из программы команды ls /proc/pid/fd а теперь дамп возникает при lstat и readlink вы скажете какая разница есть же бинарник его и пропиши в sudoers но проблема в том что если мне нужно было это сделать у себя на компе то вопроса бы не было а вопрос в том что при залитии программы на железку я заливаю туда не бинарник и тупо код функции как и тысячи других в этой прошивке поэтому прописать там как в случае с ls я уже не смогу и там я добавлял не саму программу а только ls в sudoers
0
|
|
|
Жарю без масла
867 / 749 / 225
Регистрация: 13.01.2012
Сообщений: 1,702
|
|
| 10.06.2016, 14:25 | |
|
значит используйте не системные функции, а утилиты readlink (man 1 readlink)
Добавлено через 51 секунду и их добавляйте в sudoers (как ls)
0
|
|
|
3 / 3 / 0
Регистрация: 22.09.2015
Сообщений: 124
|
|
| 10.06.2016, 14:29 [ТС] | |
|
retmas, ну допустим readlink еще можно утилитой заменить а как быть с lstat
0
|
|
|
Жарю без масла
867 / 749 / 225
Регистрация: 13.01.2012
Сообщений: 1,702
|
||
| 10.06.2016, 14:35 | ||
|
курим man 1 stat
Добавлено через 3 минуты а вообще, я не понял, почему нельзя добавить свою программу?
1
|
||
| 10.06.2016, 14:35 | |
|
Помогаю со студенческими работами здесь
20
Как найти все дескрипторы окон в системе? V-USB: как удобнее писать дескрипторы HID-устройств Как побороть дорвеи раскажите как же побороть
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Вывод данных через динамический список в справочнике
Maks 01.04.2026
Реализация из решения ниже выполнена на примере нетипового справочника "Спецтехника" разработанного в конфигурации КА2.
Задача: вывести данные из ТЧ нетипового документа. . .
|
Функция заполнения текстового поля в реквизите формы документа
Maks 01.04.2026
Алгоритм из решения ниже реализован на нетиповом документе "ВыдачаОборудованияНаСпецтехнику" разработанного в конфигурации КА2, в дополнении к предыдущему решению.
На форме документа создается. . .
|
К слову об оптимизации
kumehtar 01.04.2026
Вспоминаю начало 2000-х, университет, когда я писал на Delphi. Тогда среди программистов на форумах активно обсуждали аккуратную работу с памятью: нужно было следить за переменными, вовремя. . .
|
Идея фильтра интернета (сервер = слой+фильтр).
Hrethgir 31.03.2026
Суть идеи заключается в том, чтобы запустить свой сервер, о чём я если честно мечтал давно и давно приобрёл книгу как это сделать. Но не было причин его запускать. Очумелые учёные напечатали на. . .
|
|
Модель здравосоХранения 6. ESG-повестка и устойчивое развитие; углублённый анализ кадрового бренда
anaschu 31.03.2026
В прикрепленном документе раздумья о том, как можно поменять модель в будущем
|
10 пpимет, которые всегда сбываются
Maks 31.03.2026
1. Чтобы, наконец, пришла маршрутка, надо закурить. Если сигарета последняя, маршрутка придет еще до второй затяжки даже вопреки расписанию.
2. Нaдоели зима и снег? Не надо переезжать. Достаточно. . .
|
Перемещение выделенных строк ТЧ из одного документа в другой
Maks 31.03.2026
Реализация из решения ниже выполнена на примере нетипового документа "ВыдачаОборудованияНаСпецтехнику" с единственной табличной частью "ОборудованиеИКомплектующие" разработанного в конфигурации КА2. . . .
|
Functional First Web Framework Suave
DevAlt 30.03.2026
Sauve. IO
Апнулись до NET10.
Из зависимостей один пакет, работает одинаково хорошо как в режиме проекта
так и в интерактивном режиме. из сложностей - чисто функциональный подход.
Решил. . .
|