printf()와 유사하지만 커널의 메시지를 출력하고 관리할 수 있는 특성이 있다.
로그 레벨 지정
로그 레벨은 printk()함수에 전달되는 문자열의 선두 문자에 "<1>"과 같이 숫자로 등급을 표현한다. linux/kernel.h 에 정의된 선언문을 이용하는 것이 바람직하다.
| 
 상수 선언문  | 
 의미  | 
| 
 #define KERN_EMERG  | 
 <0>시스템이 동작하지 않는다.  | 
| 
 #define KERN_ALERT  | 
 <1>항상 출력된다.  | 
| 
 #define KERN_CRIT  | 
 <2>치명적인 정보  | 
| 
 #define KERN_ERR  | 
 <3>오류 정보  | 
| 
 #define KERN_WARNING  | 
 <4>경고 정보  | 
| 
 #define KERN_NOTICE  | 
 <5>정상적인 정보  | 
| 
 #define KERN_INFO  | 
 <6>시스템 정보  | 
| 
 #define KERN_DEBUG  | 
 <7>디버깅 정보  | 
레벨에 대한 표시를 하지 않으면 KERN_WARNING과 같은 레벨이다. 다음의 처리 결과는 모두 같다.
printk(KERN_WARNING"system okn");
printk("<4>""system okn");
printk("<4> system okn");
printk("system okn");
원형 큐 구조 관리
커널 메시지는 커널 내부에 있는 원형 큐 형식의 로그 버퍼에 저장된다.
이 로그 버퍼의 크기는 CONFIG_LOG_BUF_SHIFT 값으로 지정된다.
(정의된 헤더 include/config/log/buf/shift.h)
로그 버퍼는 일반적으로 콘솔에 출력된다.
커널 메시지 관리 데몬
klogd : 커널에서 발생하는 메시지를 기록하고 관리한다.
syslogd : 커널에서 발생하는 메시지와 응용 프로그램에서 요청한 시스템 정보를 기록하고 관리한다.
printk()사용 시 주의점
printk()를 과도하게 사용하지 않는다. -> 실행시간이 길다.
개행 문자가 있어야 출력을 시작한다. -> 'n' 을 포함 하도록 한다.
| 번호 | 제목 | 글쓴이 | 날짜 | 조회 수 | 
|---|---|---|---|---|
| 14 | 
					시리얼 인터페이스 커넥터를 위한 핀아웃
															 | 																																																												pjk | 2014.10.10 | 8289 | 
| 13 | 
					STM32와 CAN(Controller Area Network) Loop Back
															 | 																																																												makersweb | 2017.01.23 | 8815 | 
| 12 | 
					윈도우10에서 Prolific USB to Serial 드라이버 인식문제
															 | 																																																												makersweb | 2016.01.24 | 27069 | 
| 11 | 
					AVRISP mkII 펌웨어 업그레이드
															 | 																																																												makersweb | 2015.07.22 | 10123 | 
| 10 | 
					이클립스에서 IAR프로젝트 사용방법
															 | 																																																												makersweb | 2015.07.09 | 12922 | 
| 9 | 
					JFlashARM으로 MCU에 bin(바이너리)다운로드
															 | 																																																												makersweb | 2015.06.07 | 8847 | 
| 8 | 
					AVR(AT90USB162)을 USB to Serial 로 이용하기
															 | 																																																												makersweb | 2015.02.14 | 8796 | 
| 7 | 실시간 운영 체제 또는 RTOS(Real Time Operating System) | pjk | 2014.12.02 | 9245 | 
| 6 | 
					폴링(Polling), 인터럽트(Interrupt), DMA(Direct Memory Access)
															 | 																																																												pjk | 2014.10.24 | 10112 | 
| 5 | 
					부트로더의 start.S 분석
															 | 																																																												makersweb | 2014.03.23 | 7277 | 
| 4 | 임베디드 시스템 개발 환경 선택 | makersweb | 2014.03.05 | 6916 | 
| 3 | 
					GNU C 레퍼런스 메뉴얼 - 부록 D
															 | 																																																												makersweb | 2014.02.28 | 5 | 
| » | printk() | makersweb | 2014.02.27 | 7824 | 
| 1 | [Uboot 명령어 및 환경 변수 요약]U-Boot에 Command 및 Parameter에 대한 설명 | pjk | 2014.01.09 | 14536 |