커널 2.6.15 버전에서는 task_struct
파일(include/linux/sched.h)의 내용을 다시 쓸 수 있다는 것을 알았습니다. 예를 들면 다음과 같습니다.
struct task_struct {
unsigned did_exec:1;
pid_t pid;
pid_t tgid;
...
char hide;
}
task_struct
하지만 안타깝게도 버전 2.6.30.5로 업그레이드했을 때 동일한 파일을 살펴보니 다음과 같은 선언만 발견되었습니다 .
struct task_struct;
내 자신의 를 지정하려면 어떤 파일을 참조해야 할지 모르겠습니다 task_struct
. 누구든지 나를 도와줄 수 있나요?
답변1
grep
정의를 찾으려면 또는 기타 검색 도구를 사용하세요 .
grep -r '^struct task_struct ' include
아니면 온라인으로 검색해 보세요LX: http://lxr.linux.no/linux+v2.6.30.5/+search?search=task_struct
구조는 여전히 에 정의되어 있습니다 include/linux/sched.h
. 하나 있다전방 선언상호 재귀적인 유형 정의의 경우정의더 아래로.
답변2
저는 데비안 스퀴즈를 사용하고 있습니다. 헤더에 현재 커널에 해당하는 정의가 있습니다 /usr/src/linux-headers-2.6.32-5-common-vserver/include/linux/sched.h
. 정의는 에서 시작됩니다.
struct task_struct {
volatile long state; /* -1 unrunnable, 0 runnable, >0 stopped */
void *stack;
atomic_t usage;
unsigned int flags; /* per process flags, defined below */
unsigned int ptrace;
int lock_depth; /* BKL lock depth */
HTH.