2016-06-06 2 views

답변

0

트리 계층 구조에서 ctl_table을 사용하여 모듈에서 처리해야합니다.

static struct ctl_table sample_child_table1[] = { 
{ 
     .ctl_name = CTL_UNNUMBERED1, 
     .procname = "sample", 
     .maxlen = sizeof(int), 
     .mode = 0444, 
     .data = &global_var, 
     .proc_handler = &proc_dointvec_minmax, 
     .extra1 = &min_val, 
     .extra2 = &max_val, 
}, 
{} 
}; 

static struct ctl_table sample_parent_table[] = { 
{ 
.ctl_name = CTL_KERN, 
.procname = "kernel", 
.mode = 0777, 
.child = sample_child_table, 
{} 
}, 

register_sysctl_table(sample_parent_table) 
+0

Vitalik Nikolyenko의 sysctl pdf에서이 예제를 얻은 것처럼 보입니다. 여러분은 .mode 할당과 일부 이름을 변경하여 수정했습니다. 이 대답은 두 테이블의 각 과제 (예 :'.extra1'과'.extra2 '의 의미는 무엇입니까?)는 무엇입니까? min_val과 max_val은 무엇입니까? 또한, 커널에'CTL_UNNUMBERED1'이 없기 때문에'.ctl_name = CTL_UNNUMBERED1'은 유효하지 않습니다. 그 할당은'.ctl_name = CTL_UNNUMBERED'이되어야합니다. – buratino

+0

@buratino : 어디에서 가져 가든지 상관 없습니다 예를 들어 모든 사람들이 예제를 정확하게 이해할 수 있는지 여부가 중요합니다. "대답하면 진행하고 앞으로 나아갈 수있는 포인터를 제공합니까?" 내가이 위치를 복사 한 것을 기억하지 못한다.하지만 개인적인 재미있는 부분을 수정하고 개선했다. – Pramod

+0

어딘가에서 코드를 가져왔다면 괜찮습니다. 원래 소스를 링크하면 도움이 될 것입니다. 원래 소스는 더 자세하게 설명되어 있습니다. 그러나 CTL_UNNUMBERED1이 바닐라 커널에 없기 때문에 Sowndarya에 대한 예제는 컴파일되지 않아야합니다. 그것은 당신의 대답에서 언급 할만한 가치가 있습니다. – buratino

관련 문제