2016-10-08 18 views
0

변수 이름을 사용하여/sys 아래에 속성 파일을 만들 수 있습니까? 예 :변수 이름을 사용하여/sys 속성을 만드는 방법

char *variable_name = foo; 
/* Create an attribute file foo */ 
struct kobj_attribute test = __ATTR(variable_name,0660,_show,_store); 
+0

나는 정말로 그것을 얻지 못하기 때문에 당신이 실제로 성취하고자하는 것을 좀더 자세히 설명해 주어야한다. –

답변

0

커널 개발에 익숙하지 않습니다. 그러나 : 당신이 이것을한다면 :

find /sys -type f -name '*1*' 

당신은 다른 코드가 당신이 찾고있는 것을하고있는 몇 가지 예를 발견해야합니다. 그래서, 저는 그것들을 어떻게 사용하는지 예제와 모양으로 만 붙잡을 것입니다. 한 가지 예는 기계 체크 예외 코드 수 :

[...] 
/sys/devices/system/machinecheck/machinecheck0/bank1 
/sys/devices/system/machinecheck/machinecheck1/bank1 
/sys/devices/system/machinecheck/machinecheck2/bank1 
/sys/devices/system/machinecheck/machinecheck3/bank1 
/sys/devices/system/machinecheck/machinecheck4/bank1 
/sys/devices/system/machinecheck/machinecheck5/bank1 
[...] 
$ ls /sys/devices/system/machinecheck/machinecheck0/bank* 
/sys/devices/system/machinecheck/machinecheck0/bank0 
/sys/devices/system/machinecheck/machinecheck0/bank1 
/sys/devices/system/machinecheck/machinecheck0/bank2 
/sys/devices/system/machinecheck/machinecheck0/bank3 
/sys/devices/system/machinecheck/machinecheck0/bank4 
/sys/devices/system/machinecheck/machinecheck0/bank5 
/sys/devices/system/machinecheck/machinecheck0/bank6 

어떤 경우에, 당신이 (즉 kobj_attribute 자신을 구조체 초기화)이 대한 __ATTR 매크로를 다시 구현해야 할 것 같다.

0

매크로 __ATTR을 사용하면 변수를 문자열화할 수 있습니다. sysfs.h

__stringify 매크로에서 봐입니다

#define __stringify_1(x...)  #x 
#define __stringify(x...)  __stringify_1(x) 
0

는/SYS

에서 속성 파일을 만드는 방법의 예를 들어 리눅스 커널 트리 아래 샘플/kobject/kobject-example.c 참조
관련 문제