- 論壇徽章:
- 0
|
device_create(my_class, NULL, dev, NULL, "DEVICENAME%d" );// , LED_MINOR );
:em12:
你第五個參數(shù)"DEVICENAME%d"是個格式化的字符串,既然帶了%d,后面的參數(shù)就不可省略。
device_create(my_class, NULL, dev, NULL, "DEVICENAME%d" , LED_MINOR);
與printf類似..
你省略掉后,device_create里面調(diào)用的vsnprintf不出錯才怪了.內(nèi)核當(dāng)然認為%d對應(yīng)的變量地址是NULL
Unable to handle kernel NULL pointer dereference at virtual address 00000000
你甚至可以這樣寫這個函數(shù)
char * str = "abcde";
int inta = 10;
device_create(my_class, NULL, dev, NULL, "DEVICENAME%d%s%d", LED_MINOR, str, inta);
記住:格式化串必須對應(yīng)參數(shù).
:em12: |
|