![]() |
Модераторы: xvr |
![]() ![]() ![]() |
|
FreeNUX |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 22 Регистрация: 29.5.2004 Репутация: нет Всего: нет |
Сабж.
|
|||
|
||||
Ni@m |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 189 Регистрация: 11.3.2004 Где: почти Киев Репутация: нет Всего: 6 |
я не понял что тебе надо, но попробуй man lsof.
Эта тулза показывает открытые файлы и кем они заюзаны. --------------------
Обучение - как переливание воды из одной чашки в другую: всегда лучше, чтоб чашка со знаниями нахордилась выше. |
|||
|
||||
FreeNUX |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 22 Регистрация: 29.5.2004 Репутация: нет Всего: нет |
Конкретнее, такой пример - как узнать, какой файл открыт на чтение xmms'om в данный момент времени?
|
|||
|
||||
Ni@m |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 189 Регистрация: 11.3.2004 Где: почти Киев Репутация: нет Всего: 6 |
lsof | grep xmms
--------------------
Обучение - как переливание воды из одной чашки в другую: всегда лучше, чтоб чашка со знаниями нахордилась выше. |
|||
|
||||
Mayk |
|
|||
![]() ^аВаТаР^ сообщение>> ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 2616 Регистрация: 22.5.2005 Где: за границей разум а Репутация: 5 Всего: 134 |
Можно еще посмотреть в /proc/`getpid()`/fd.
Там симлинки на открытые файлы. -------------------- Здесь был кролик. Но его убили. Человеки < кроликов, йа считаю. |
|||
|
||||
FreeNUX |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 22 Регистрация: 29.5.2004 Репутация: нет Всего: нет |
Ладно, ещё конкретнее. Как отследить, какой музыкальный файл открыт xmms'om на чтение.
Mayk К сожалению во фряхе (FreeBSD 5.3) /proc пуст. Ni@m Я просил объяснить, как это реализовать программно (хотябы кратко описать алгоритм). |
|||
|
||||
Ni@m |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 189 Регистрация: 11.3.2004 Где: почти Киев Репутация: нет Всего: 6 |
Если честно, то не знаю. Есть 2 выхода - покопать исходники lsof или я думаю что у самого xmms как-то узнать можно. Я сам покопаю исходлики lsof, может позже подскажу.
--------------------
Обучение - как переливание воды из одной чашки в другую: всегда лучше, чтоб чашка со знаниями нахордилась выше. |
|||
|
||||
FreeNUX |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 22 Регистрация: 29.5.2004 Репутация: нет Всего: нет |
Ni@m
Буду благодарен. Может быть я плохо смотрел, но lsof не видит какой музыкальный файл открыт на чтение xmms'ом. |
|||
|
||||
comcon1 |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 838 Регистрация: 11.6.2005 Где: Москва ДАС-МГУ Репутация: нет Всего: 17 |
А у меня очень даже видит. Только что проверял. Правда среди открытых дескрипторов у XMMS-а еще куча. Мож у тебе не те параметры стоят.
А насчет програмно, так вот: у процесса есть две структуры -proc и user. У user есть ссылка на таблицу открытых дескрипторов - u_ofile. Покопай в этой области. По открытому дескриптору системной функцией stat можно посмотреть инфо о устройстве (в твоем случае - файле), которому этот дескриптор соответствует. |
|||
|
||||
FreeNUX |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 22 Регистрация: 29.5.2004 Репутация: нет Всего: нет |
comcon1
Спасибо за совет. |
|||
|
||||
Ni@m |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 189 Регистрация: 11.3.2004 Где: почти Киев Репутация: нет Всего: 6 |
Это все хорошо, но stat работает с определеннім файлом. Не годится, если прийдется перечесать весь плейлист.
--------------------
Обучение - как переливание воды из одной чашки в другую: всегда лучше, чтоб чашка со знаниями нахордилась выше. |
|||
|
||||
achmed |
|
|||
Бывалый ![]() Профиль Группа: Участник Сообщений: 150 Регистрация: 12.4.2004 Репутация: нет Всего: нет |
strace
|
|||
|
||||
Ni@m |
|
||||||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 189 Регистрация: 11.3.2004 Где: почти Киев Репутация: нет Всего: 6 |
Уф. Замучался уже клпать те злые исходники. Но кое-что нарыл. Можно пользоваться либами lsof.
У него в описании сказано =
И вот что я нашел в main()
После некоторых соображения, я решил что в данном случае пользуется функция enter_str_lst, которая принимает первым праметром "-c", вторым - "xmms" к примеры - а третьим массив структур, содержащих строки - состоит из :
Я думаю, если подключить нужные либы(я сейчас не имею возможности сказать, но можно посмотреть ldd /usr/bin/lsof) и подключить lsof.h,proto.h(думаю этих хватит). Может быть, что есть нормальный мануал по использованию функций из этого пакета, но я не нашел =(. Это все конечно коряво и непроверенно, но тоже имеет право на жизнь. Я как получу возможность, так сразу проверю! Если будешь пробовать, сообщи о результатах. --------------------
Обучение - как переливание воды из одной чашки в другую: всегда лучше, чтоб чашка со знаниями нахордилась выше. |
||||||
|
|||||||
FreeNUX |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 22 Регистрация: 29.5.2004 Репутация: нет Всего: нет |
Ni@m
Спасибо за беспокойство, но боюсь в данном случае lsof не подойдёт, так уж сложилось, что вся моя музыка лежит на разделе с фс NTFS, а lsof , по поводу открытого музыкального файла, выдаёт - unknown file system type: ntfs. |
|||
|
||||
Ni@m |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 189 Регистрация: 11.3.2004 Где: почти Киев Репутация: нет Всего: 6 |
Да ничего. Хоть сам немного растормошился =)
--------------------
Обучение - как переливание воды из одной чашки в другую: всегда лучше, чтоб чашка со знаниями нахордилась выше. |
|||
|
||||
![]() ![]() ![]() |
Правила форума "С/С++: Программирование под Unix/Linux" | |
|
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, xvr. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | C/C++: Программирование под Unix/Linux | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |