Dev/C, C++

    Serial-port 관련 자료 정리

    centos 에서 Serial-Port를 이용한 파일전송 모듈을 개발하면서 정리한 자료 입니다. 시리얼 포트 상태 확인 장치 확인 $ cat /proc/tty/driver/serial serinfo:1.0 driver revision: 0: uart:16550A port:000003F8 irq:4 tx:930342833 rx:215304 brk:145317 RTS|CTS|DTR|DSR 1: uart:16550A port:000002F8 irq:3 tx:1090 rx:0 RTS|CTS|DTR|DSR|CD 2: uart:unknown port:000003E8 irq:4 3: uart:unknown port:000002E8 irq:3커널에서 시리얼 드라이버 load 되었는지 확인 $ dmesg | grep t..

    core 파일이 생성되는 한가지 상황

    오늘 하루종일 삽질한 내용이 있어서 기록을 남긴다. [ 상황 ] 패킷 내용이 추가되어서 기존 모듈을 수정하게 되었다. 컴파일을 잘되는데, 실행하면 계속 core 파일이 생성되면서 프로세스가 죽는다. 수정 한 부분을 전체 주석으로 막아도, Call Stack을 체크 해보면 특정 함수를 진입하는 시점에 죽어 버린다. [ 원인 ] 원인은 패킷 사이즈가 커지면서, Stack 영역에 할당 할 수 있는 최대 메모리 사이즈를 초과한 것이다. [ 해결 방안 ] Stack 영역이 아닌, Heap영역에 메모리를 할당 하면 된다. 원인 밝히느라 오전 내내 삽질, 정적 메모리 구조를 동적 구조로 바꾸느라고, 오후 내내 디버깅 및 삽질.. 오늘 하루도 이렇게 날려 먹었다. [ Code ] -. Stack 영역에 할당 할 수 있..

    Pro*C/C++ Precompiler Programmer's Guide

    [ 원문 링크 ] http://download.oracle.com/docs/cd/A58617_01/server.804/a58233/toc.htm [ 다운로드 링크 ]

    한글이 포함된 문자열을 특정 byte로 자르기

    한글이 포함된 문자열의 경우에 한글 중간에 끊기지 않도록 left 함수를 구현 했다. 유니코드 한글을 구분하기 위해서는 메크로 함수를 수정해 주어야 한다. #include #define IsHangle(c) ((unsigned char)(c) > 0x7f) char* left(char* sz, int len) { int i = 0; if ( strlen(sz)

    DisplayHex

    패킷 또는 버퍼를 파라미터로 받아 16진수 형태로 출력을 예쁘게 해준다. * 사용예 DisplayHex( "Send Packet", szBuf, sizeof(szBuf) ); * 결과 [ Send Packet ] ========= ----------------------------------------------------------------------- ADDR +0 +1 +2 +3 +4 +5 +6 +7 +8 +9 +A +B +C +D +E +F 0123456789ABCDEF ----------------------------------------------------------------------- 0000 54 65 73 74 20 50 61 63 6B 65 74 20 53 61 6D 70 Te..

    Oracle 에러코드

    Oracle 에러코드

    Visual Sutdio 2008 설치 기념 첫 산출물이다. Oracle 에러코드를 입력 하면 해당 문구를 출력 해주는 완전 초 간단 프로그램 Visual Studio 2005 보다 체감 속도가 빨라진 듯 하다. 전체 소스는 여기 소스는 사실 볼것 없고, 실행 파일만 사용하시길 ㅎㅎ