본문 바로가기
코스웨어/12년 내장형하드웨어

[리눅스 커널]2012/10/12 작업일지(sprintf의 역활) - by. 이창현

by 알 수 없는 사용자 2012. 10. 12.
728x90
반응형

sprintf의 역활.

 

그림 1) sprintf 소스.

1. sprintf의 역활은 메모리에 출력 하는 역활을 한다. 그림 1)의 소스를 보면 소스는 간단 하지만 sprintf의 기능을 확실하게 볼 수 있다. 그럼 컴파일을 해 보겠다.

그림 2) 컴 파일.

2. 그림 2)에서 표시 된 부분을 볼 수 있는데  그 부분에는 경고 메시지가 있다. 그 경고 메시지는 무시 해도 된다. 아무리 봐도 에러 메시지가 보이지 않는다면 제대로 된 것이다. 그럼 이제 어떻게 실행이 되는지 확인 해보자.

그림 3) 실행 후 화면.

3. 화면에 12345678이  출력된 것을 볼 수 있다. 근데 뭔가 이상하다. sprintf랑 printf랑 printf문은 2줄인데 화면에 출력 되는 것은 한줄 밖에 없다. 어~~라~~ 맨붕이다. 하지만 이상 해 할게 없다 정상 적인 출력이다. sprintf문은 메모리에만 출력을 하고 직접적으로 화면에 출력을 하지 않는다. 그럼 pintf는 그냥 그림 1)에서는 buf밖에 넣은게 없는데 어떻게 출력이 되지 라는 의문이 들것이다. 그렇다 그 의심은 바로 buf에 있다. sprintf에서 buf에 출력을 하긴 했는데 화면에 하지 않은 것 이다. 그래서 printf가 buf를 출력 하자. 화면에 출력을 한 것이다. 그럼 진짜인지 printf 문을 지워 보겠다.

그림 4) printf 문 주석 처리.

4. 그림 4)에서 볼 수 있듯이 printf 문을 주석 처리 하였다. 새로 컴파일 하여 화면에 어떻게 출력이 되는지 확인 해보자.

그림 5) printf 문 주석 처리 후 실행.

5. 그림 5)에서 보면 화면에 아무것도 출력 되지 않는 것을 볼 수있다. 역시나 라는 생각이 들 것이다. 역시 sprintf는 화면에 출력을 시키지 않는다.

  

 

 

 

728x90