이 블로그 검색

2017년 12월 24일 일요일

oracle PCC-S-02322, found undefined identifier 에러 발생의 어이없는 이유

지금 하고있는 프로젝트에서 오라클을 사용하는 부분이 있어서, 그 옛날의 proc 를 사용해서 개발하는 부분이 있는데, 이런 오류가 발생했다.

PCC-S-02322, found undefined identifier

2017년 12월 3일 일요일

localtime_r 은 thread safe 하지 않다? deadlock발생 경우.

며칠 전 개발하면서 겪었던 상황인데,
fork 된 child process에서는 localtime_r 과 같은 시간관련 함수를 사용할때 유의해야 한다.

2017년 10월 8일 일요일

2017년 4월 26일 수요일

변기 디버깅 : 원피스 변기 앞쪽 물 안내려감

이글은 프로그래밍과 관련없음.
화장실 원피스 변기 수리(디버깅)하면서 알게된 내용을 기록 하고자 한다. ^^

먼저 간단한 결론:

다음 항목에 해당되는 경우 간단한 해결책이 존재한다
  • 변기 유형이 원피스 변기다.
  • 화장실 수압은 정상이다 (물이 졸졸 나오는 수준만 아니면 된다).
  • 화장실 변기 물이 천천히 차오른다
  • 물내릴때 변기 앞쪽 옆쪽으로 물이 안나온다
  • 그래서 비록 변은 내려가지만 앞쪽 휴지 한장조차 시원히 안내려간다.

2017년 2월 10일 금요일

close(0) 로 인한 stdin close : getline, getchars 동작 이상

왜 getline() 함수가 즉시 리턴되는가? 에 대한 삽질의 기억...


class SomeClass
{
    ...
    int nSockFd_  {0}; //초기화를 0 으로 한 경우.
    ...
};     

void SomeClass::SomeMethod1()
{
    .... 
    //코드 어딘가에서 다음을 호출했는데... 아직 nSockFd_ 가 할당안된 경우 
    close(nSockFd_); //--> close(0) --> stdin 을 닫아버림 - - ;;
    ... 
}

void SomeClass::SomeMethod2()
{ 
   ....  
   std::string line="";
    while(true)
    {  
        std::cin.clear();
        getline(std::cin, line); //여기서 문제 발생, 즉시 리턴됨
        std::cout << "msg:" << line << std::endl;
    }
}

2017년 2월 5일 일요일

Cumbuffer 를 이용한 예제 : ASockLib


https://github.com/jeremyko/ASockLib


CumBuffer 를 사용하는 예제 겸 TCP/UDP/Domain socket 네트워크 라이브러리를 작성해 보았다. 비록 허접하지만 cross platform 에서 동일한 interface 를 지원해보자는 생각이 있어서.... linux 에서는 epoll, os x 에서는 kqueue 를 사용해서 구현 되었다. cmake를 사용해서 cross platform compile 을 지원하게 해보았다. 클래스 상속과 포함(composition) 2가지 방식으로 사용 가능한다. 그리고 비동기 send 호출시 block 되는 경우에는 큐에 저장되었다가 전송 가능한 시점에 재개되는 방식으로 처리했다. 지금 수행중인 SI 과금 프로젝트에서 이걸 적용하면서 개발중이다.