|
3 / 3 / 0
Регистрация: 22.09.2015
Сообщений: 124
|
||||||
Файловые дескрипторы,а точнее как их побороть09.06.2016, 08:05. Показов 3380. Ответов 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-устройств Как побороть дорвеи раскажите как же побороть
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Подключение Box2D v3 к SDL3 для Android: физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога
Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
|
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования.
Часть библиотеки BedvitCOM
Использованы. . .
|
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога
SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
|
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL3_image
8Observer8 27.01.2026
Содержание блога
SDL3_image - это библиотека для загрузки и работы с изображениями. Эта пошаговая инструкция покажет, как загрузить и вывести на экран смартфона картинку с альфа-каналом, то есть с. . .
|
|
Влияние грибов на сукцессию
anaschu 26.01.2026
Бифуркационные изменения массы гриба происходят тогда, когда мы уменьшаем массу компоста в 10 раз, а скорость прироста биомассы уменьшаем в три раза. Скорость прироста биомассы может уменьшаться за. . .
|
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога
SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
|
Установка Android SDK, NDK, JDK, CMake и т.д.
8Observer8 25.01.2026
Содержание блога
Перейдите по ссылке: https:/ / developer. android. com/ studio и в самом низу страницы кликните по архиву "commandlinetools-win-xxxxxx_latest. zip"
Извлеките архив и вы увидите. . .
|
Вывод текста со шрифтом TTF на Android с помощью библиотеки SDL3_ttf
8Observer8 25.01.2026
Содержание блога
Если у вас не установлены Android SDK, NDK, JDK, и т. д. то сделайте это по следующей инструкции: Установка Android SDK, NDK, JDK, CMake и т. д.
Сборка примера
Скачайте. . .
|