Linux Kernel programming 을 할 때는 일반적인 printf 함수를 사용 할 수 없다.

Kernel 에서 Debugging 등을 위해 print를 하고자 하는 경우

printk 함수를 사용할 수 있다.

헤더는 linux/kernel.h


사용법은 printf 함수와 유사하다.

printk("hello world\n");

printk("a=%d\n, a);

사용법은 비슷하지만, kernel에서 print 하는 것이기 때문에 print 된 것은 userspace 에서 보이지 않는다.

따라서, 프로그램 실행 후에 dmesg 를 통해 kernel message 를 확인해야 한다.

$ dmesg


printk 사용 시 floating point number 를 print 하는 데 문제가 생길 수 있다.

undefined reference to __aeabi_f2d 라고 나오는 것은 그 때문이라고 할 수 있는데,

Floting point 자체를 지원하지 않기 때문이다.

Kernel 버전 혹은 CPU 에 따라 kernel 내부에서 floating point 를 지원하는 경우도 있고, 지원하지 않는 경우도 있다.

'Programming > Linux Kernel' 카테고리의 다른 글

cross kernel debugging  (0) 2020.06.19
Linux kernel module compile from linux source  (0) 2019.01.17
Kernel module programming  (0) 2018.05.23
Kernel Version Check  (0) 2018.05.23

출근 시간을 지키기 힘든 것은 무엇 때문일까?


퇴근을 늦게 해서 일까?

출근을 하기 싫어서 일까?

게을러서 일까?

'Life > A sentense of the day' 카테고리의 다른 글

거짓말  (0) 2017.06.20
경험  (0) 2017.06.20
여행 기념품  (0) 2017.06.16
당당함  (0) 2017.06.15
다르다  (0) 2017.06.13

Bash script 를 sudo 권한으로 실행하는지 여부를 확인하고자 하는 방법은 아래와 같다.

if [ $EUID -ne 0 ]

then

echo "please run as root"

exit

fi

$EUID 는 Effective User ID 로 0 인 경우 root 를 나타낸다.


'Programming > Bash Script' 카테고리의 다른 글

Bash Script Variable Split by Space  (0) 2018.02.04
Bash Script Echo  (0) 2018.02.04
Bash Script String  (0) 2017.07.04
Bash Script If statement  (0) 2017.07.04
Bash script argument  (0) 2017.06.20

+ Recent posts