hyojeonglee / osfall2019

Undergraduate Operating Systems course (2019 fall)
17 stars 8 forks source link

comm을 가져오는 방법 관련 질문 #18

Open xdoju opened 5 years ago

xdoju commented 5 years ago

task_struct의 comm 을 가져오기 위해 get_task_comm 매크로를 사용하려고 했습니다. 그러나 prinfo의 comm 배열의 크기와 커널에서 사용하는 comm의 길이가 서로 길이가 달라 컴파일이 되지 않습니다.

** include/linux/prinfo.h
struct prinfo {
    ...
    char comm[64];
}
** include/linux/sched.h#L207
#define TASK_COMM_LEN 16
** include/linux/sched.h#L1555
BUILD_BUG_ON(sizeof(buf) != TASK_COMM_LEN);

이를 깔끔하게 처리할 수 있는 방법이 있나요? prinfo의 comm의 크기를 16으로 수정해도 될까요?

hyojeonglee commented 5 years ago

해당 매크로를 쓰시려면 기존 커널코드 혹은 과제 명세 (prinfo) 수정이 불가피해보이고, 매크로 대신 task->comm 이런 식으로 직접 접근하시면 될 것 같습니다.