2013-04-22 6 views
1

Существует вопрос о проверке c string null в коде ядра Linux, не могли бы вы мне помочь, спасибо!Почему Linux-ядро использует kobj-> name [0] для определения строки NULL c?

В kobject.c, kobject_add_internal, чтобы проверить, является ли имя NULL:

if (!kobj->name || !kobj->name[0]) { 
    WARN(1, "kobject: (%p): attempted to be registered with empty " 
           "name!\n", kobj); 
    return -EINVAL; 
} 

Почему if(!kobje->name) не хватает?

Спасибо!

С наилучшими пожеланиями Билл

ответ

2

!kobj->name верно, когда строка пуста.

!kobj->name[0] истинно, когда строка пуста. Строка C завершается символом 0, поэтому строка пуста тогда и только тогда, когда ее первый символ равен 0.

+0

большой, большое спасибо ~ –

 Смежные вопросы

  • Нет связанных вопросов^_^