본문 바로가기

printf

화면 출력을 버퍼로 변경하기 원문 : http://kin.naver.com/qna/detail.nhn?d1id=1&dirId=1040101&docId=243592745&qb=c2V0YnVmKHN0ZG91dCwgTlVMTCk7&enc=utf8&section=kin&rank=1&search_sort=0&spq=0 setbuf는 http://www.cplusplus.com/reference/cstdio/setbuf/에 잘나와있네요파일 스트림을 버퍼로 리다이렉션하는 함수입니다.다음 예제에서setbuf(stdout,but);히면 그이후부터 printf의 결과는 화면으로 가지않고 버퍼(buf)에 가게 됩니다.setbuf(stdout,NULL);하면 설정한 버퍼를 해제하는 것으로 이후의 printf의 결과는 화면으로 출력되게 됩니다. 더보기
stdout 출력을 file 로 돌리기 static const char *TEMPORARY_LOG_FILE = "/tmp/recovery.log"; intmain(int argc, char **argv) { time_t start = time(NULL); redirect_stdio(TEMPORARY_LOG_FILE); 더보기
printf / printk 에서 %p 사용방법 %p : 주로 변수가 가지고 있는 주소값을 출력하는데 사용함. - 변수가 저장된 주소값을 출력해주는 것이 아니라, 변수가 저장하고 있는 주소값을 출력해줌- 16진수 address 로 출력해줌.- 앞에 0x 를 붙이지 않아도 알아서 출력해줌.- 주소값을 가지고 있는 void* , char* 등은 그대로 출력unsigned char* data;printf("data(%p)\n" data);- 배열은 앞에 '&'를 붙여야 함.printf("%s() psrc[d]=%p, psrc[t]=%p\n", __func__, &psrc[d], &psrc[t]); 추가하고 싶은 내용%x 와 %p 의 출력 차이점. 더보기
Serial(uart) port 를 통한 consol 출력에 대해서.. linux 를 다루다 보면 의외로 간단한 부분이지만 linux 가 자체 지원해 주어서 잘 모르는 부분이 있습니다. 그중에 하나가 serial port 에 관련된 부분인데요. 내용을 간단하게 다뤄 봅시다. 우선 사용되는 node 는 다음 위치에 있습니다. /dev/ttySAC0 .. 1 .. 2 .. 3 어느 port 를 사용할 것인지는 kernel 에 boot param 으로 넘기게 되어 있지요. console=console=ttySAC2,115200n8 요렇게 셋팅해주면 kernel 에서 ttySAC2 node 를 mknod 해 주어서 자동으로 consol 에 물려줍니다. 실제로 다음과 같이 입력해 보면 동일한 메세지가 consol 에 출력되는것을 보실 수 있습니다. # echo "test messag.. 더보기