일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 |
Tags
- framework
- deep learning
- kernel
- Samsung
- FTL
- 키워드
- performance
- Flash Memory
- Intel
- github
- Git
- Operating System
- Cache
- 포트 번호 변경
- 시스템 프로그래밍
- core dumped
- 시스템 소프트웨어
- rocksdb
- hardware
- storage system
- USENIX
- software
- ssd
- 커널 프로그래밍
- Machine Learning
- overflow
- memory
- linux
Archives
- Today
- Total
Happy to visit my research note ^^
sprintf 와 printk의 차이 본문
728x90
sprintf와 printk는 모두 문자열을 출력하는 함수입니다. 그러나 둘은 매우 다른 용도로 사용됩니다.
sprintf 함수는 문자열을 생성하여 버퍼에 저장하는 역할을 합니다. 버퍼는 메모리에 할당되어 있어야 하며, 생성된 문자열은 이후 프로그램에서 필요한 곳에서 사용될 수 있습니다. sprintf 함수는 메모리 할당과 해제, 문자열 생성 등을 처리하기 때문에 시스템 오버헤드가 발생할 수 있습니다.
반면에 printk 함수는 커널 디버깅에 사용되는 함수입니다. 따라서 printk는 커널 공간에서만 사용할 수 있으며, 사용 시에는 커널 모듈의 로그에 출력됩니다. printk 함수는 메모리 할당이나 해제 없이 출력을 수행하며, 장치 드라이버나 커널 모듈 개발 시 디버깅 목적으로 매우 유용합니다.
따라서, 문자열을 생성하는데 사용하는 경우에는 sprintf를 사용하고, 커널 디버깅에 사용하는 경우에는 printk를 사용하는 것이 일반적입니다.
728x90
'Kernel & Linux programming with C Lang' 카테고리의 다른 글
내가 쓰는 파일 입출력에 대한 간단한 정리 (0) | 2023.02.28 |
---|---|
linux에서 buffer에 timestamp를 찍기를 원할 때 알면 좋은 것들 (0) | 2023.02.22 |
kernel에서 함수 정의 시 static 키워드를 자주 사용하는 이유 (0) | 2023.02.22 |
kernel 개발에 필요한 키워드 정리 (c lang) (0) | 2023.02.22 |
상/하위 레이어 함수 간의 코드를 공유하는 방법 (0) | 2023.02.22 |