|
Модераторы: Daevaorn |
|
newbie2009 |
|
|||
Бывалый Профиль Группа: Участник Сообщений: 161 Регистрация: 8.2.2009 Репутация: нет Всего: нет |
Доброго времени суток.
Наткнулся на такую вот статью - http://linuxkernel51.blogspot.kr/2011/02/h...ks-example.html Решил попробовать для своих целей, но не могу понять почему оно не работает в моем случаи и хотелось бы понять, как оно вообще в целом работает. Подскажите пожайлуста:
Собственно если я расскоментирую вот эту часть *&my_vma->mm;*/, то я уже pid получу не верный, почему? И почему если я вместо struct mm_struct *my_mm = &ts->mm; напишу struct mm_struct *my_mm = ts->mm; , то нефига опять работать не будет, там ведт вроде не должно быть - & ? Это сообщение отредактировал(а) newbie2009 - 16.8.2013, 04:29 |
|||
|
||||
mes |
|
|||
любитель Профиль Группа: Участник Клуба Сообщений: 7954 Регистрация: 14.1.2006 Репутация: 144 Всего: 250 |
проблема в указателе, вам нужен адрес поля mm (т.е. указатель на указатель), а не того обьекта, на который это поле указывает..
|
|||
|
||||
newbie2009 |
|
|||
Бывалый Профиль Группа: Участник Сообщений: 161 Регистрация: 8.2.2009 Репутация: нет Всего: нет |
Спасибо, в этом я разобрался + вы подвердили.
Я не множко переписал тестовое приложение:
Я так понимаю в этом случаи я не смогу получить используя VMA->mm структурку task_struct? Или я опять не правильно использую макрос? Исходя из того, как этот макрос работает я так понял у меня не выйдет сделать. Или я не прав? |
|||
|
||||
xvr |
|
||||
Эксперт Профиль Группа: Комодератор Сообщений: 7046 Регистрация: 28.8.2007 Где: Дублин, Ирландия Репутация: 60 Всего: 223 |
Не сможете
Угу, это принципиально невозможно. container_of позволяет перемещаться внутри структуры, имея адрес какого то ее поля. Но он никоим образом не может перескачить из одной структуры в совершенно другую, даже если в них есть поля с одинаковым содержимым (это ваш MM) |
||||
|
|||||
Правила форума "С++:Общие вопросы" | |
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |