반응형
printk와 pr_info의 차이
그 사이의 정확한 차이점은 무엇입니까?printk
그리고.pr_info
함수?그리고 어떤 조건에서 둘 중에 하나를 선택해야 합니까?
커널의 printk.h는 다음과 같습니다.
#define pr_info(fmt,arg...) \
printk(KERN_INFO fmt,##arg)
이름 그대로.pr_info()
가printk()
와 함께KERN_INFO
우선 순위.
구체적으로 볼 때pr_info
, 그 정의는 차례로 사용될 것입니다.printk(KERN_INFO ...
(barcelona_delpy의 답변에서 언급된 바와 같이); 그러나 답변의 소스 스니펫은 형식 래퍼를 제외한 것으로 보입니다.pr_fmt(fmt)
(LP 댓글에서 언급한 바와 같이).
사용할 수 있는 이유의 차이pr_info
위에printk(KERN_INFO ...
설정할 수 있는 사용자 지정 형식입니다.모듈의 메시지를 다음과 같이 접두사로 붙이려면printk
, 방법은 각 행에 접두사를 명시적으로 추가하는 것입니다.
printk(KERN_INFO "mymodule: hello there\n");
// outputs "mymodule: hello there"
또는:
printk(KERN_INFO KBUILD_MODNAME " hello there\n");
// outputs "mymodule: hello there"
하지만 만약 당신이pr_info
(기타)pr_*
functions), 포맷을 다시 define하고 간단히 사용할 수 있습니다.pr_info
추가 작업 없이:
... (includes)
#ifdef pr_fmt
#undef pr_fmt
#endif
#define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
...
{
...
pr_err("hello there\n");
// outputs "mymodule: hello there" (assuming module is named 'mymodule')
...
}
...
참고 항목:
언급URL : https://stackoverflow.com/questions/42243185/difference-between-printk-and-pr-info
반응형
'source' 카테고리의 다른 글
각 리소스 호출 및 $q (0) | 2023.11.07 |
---|---|
요소의 XSLT 이름이 있습니까? (0) | 2023.11.07 |
루트(또는 sudo)에서 NVM을 사용할 수 없습니다. (0) | 2023.11.07 |
문자열에 C#의 숫자만 포함되어 있는지 확인하는 가장 빠른 방법 (0) | 2023.11.02 |
숫자를 세 부분으로 나누고 그 총합을 원래의 숫자와 일치시키는 알고리즘이 있습니까? (0) | 2023.11.02 |