2013-04-22 2 views
1

Linux 커널 코드에서 C 문자열 Null을 확인하는 방법에 대한 질문이 있습니다. 도와 주시겠습니까? 감사합니다. kobject.c에서왜 리눅스 커널은 kobj-> name [0]을 사용하여 NULL 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)입니까?

감사합니다. 문자열이 NULL 인 경우

친절 감사 빌

답변

2

!kobj->name는 사실이다.

!kobj->name[0]은 문자열이 비어있을 때 true입니다. C 문자열은 문자 0에 의해 종료되므로 첫 번째 문자가 0 인 경우에만 문자열이 비어 있습니다.

+0

대단히 감사합니다. –