[Q] container_of
글쓴이: akfgoakfgo / 작성시간: 월, 2004/07/26 - 12:59오전
커널 2.6.x를 분석중에,
container_of이라는 매크로를 자주 만나느데...
참 특이한 놈이 더군요...
예를 들어서,
struct type
{
char ttt;
int * member;
}
int * ptr;
aaa = container_of(ptr, type, member)
이렇게 하면, aaa의 값은 ptr의 1byte 위를 포인팅하게 됩니다.
그런데 이런 방식으로하면, aaa는 메모리 확당없이 엑세스하게 되면 만약에 ptr위쪽을 다른 변수가 사용하고 있다면 문제가 발생하지 않나요 ??
^^ 역시 커널은 너무 난해해요.~~~
Forums:
container_of 구조체는 멤버의 pointer를 이용하여 구조체의
container_of 구조체는 멤버의 pointer를 이용하여 구조체의 시작 주소를 찾는 함수 입니다.
예를 들면 모 이런 식이겠죠..
처럼 멤버중의 하나인 node의 주소를 알고 있을때 이를 포함한 구조체의 시작 pointer를 구하는 함수 입니다.
답변감사합니다.
답변감사합니다.
우앗..........명확한 예제~ ㅎㅎㅎ
감사합니다. 저도 이걸 보고 좀 더 명확하게 알게 되었습니다.....^^
_______
항상 겸손하게,
배움의 자세로 임하자.
감사합니다.
저도 코드를 보면서 한참을 고민했는데,
이제 명확해 졌습니다.
우왕 감사합니다.
커널 소스 보다가 궁금했는데 이걸보고 이제야 이해가 됩니다.
댓글 달기