본문 바로가기

분류 전체보기691

긴 오류 메세지 알아 보기 STL 을 사용하다 보면 특히나 오류 메세지가 매우 길어질 때가 자주 있다. 길어진 이유를 찬찬히 뜯어 보면 별 내용은 없고 대부분 STL 의 container 의 형 선언 때문인데, 보통 사용할 때는 기본값(default 값)으로 되어 있는 것을 사용하기 때문에 명시적으로 코드에 적어 주지 않는 것들이 오류 메세지에는 전부 나오기 때문에 길어지곤 한다. 이러한 것들을 무시하고 오류 메세지를 읽으면 좀 더 빨리 오류 메세지의 의미를 알 수 있다. 혹은, 오류 메세지의 제일 끝부터 읽으면 된다. 예를 들면 다음과 같다. [adnoctum@nomadism analysis_code]$ makeg++ -c check_data_set_consistency_with_gene_rank.cppcheck_data_set.. 2013. 5. 22.
유니코드 사용시 터미널로 출력되지 않는 문자에 의한 오류 파일에 무효한 ID를 텍스트로 저장한 후 읽어 들여서 set 에 넣고, 데이터 처리를 할 때 그 집합에 있으면 넘어가도록 코드를 작성했다. 그런데 최종적으로 보니 그 중 한 개의 무효한 ID가 처리가 되고 있었다. 제일 먼저 생각한 것은 그 ID 가 무효한 ID를 저장하는 파일에 없을 것이라는 것이었으나 확인을 해보니 분명 있었다. 그럼 어떤 이유에서든지 std::set 에 안 들어가나, 해서 set 의 모든 요소를 출력해 보았는데 역시나 있었다. 있는데 왜 처리를 하지? 현재 주어진 ID 가 set 에 있는지를 확인하기 위하여 std::set::count 함수를 사용했기 때문에 그대로 하면서 출력을 해 보았는데 없는 것으로 나온다. 그럼 아예 그 요소를 set 에 집어 넣기 전/후 집합 크기가 변하는지.. 2013. 5. 10.
삼바 접속이 안될 때 확인할 점들 삼바를 설치 후 윈도우즈에서 연결을 하면 짠! 하고 한 번에 되면 좋겠지만 잘 안 되는 경우가 많다, ㅋ. 그럴 땐 우선 다음과 같은 점들을 확인해 준다 (CentOS 기준). 1. SELinux2. 방화벽3. 데몬 실행 여부4. IP 1. SELinux : Security Enhanced Linux 인데, 이게 켜져 있으면 삼바를 돌리기 위해선 참 많은 다른 설정을 해야 한다. 보안이 향상된 것보다 차라리 편하게 삼바를 하고 싶다면 이것을 꺼준다. 이것 때문에 문제가 생길 경우 증상은 탐색기에서 연결된 상태로 뜨지만 권한 문제로 실제 접속은 되지 않는 것처럼 나오는 것이다. 2. 방화벽: 당연히 삼바가 쓰는 port 를 열어 놓아야 겠지. udp 138, 139 를 이용할테니 열어 놓도록 한다. 3. .. 2013. 5. 9.
결국은 C++ 찬양론자 >.<"" 가 될 수밖에 없는 이유는, 다뤄야 하는 파일이 GB 단위를 넘는 경우가 자주 있기 때문이다, >.... c ? 1 : -1; 뭐, 이런 것이라거나, a = (int)(b == c); 이런 것. a ^= 0x01, 이런 건 걍 문법적으로 지원되는 것일 뿐이니 좀 다르지만, ㅋ. OOP는 확실히 좀 애매꾸리하긴 하다. 이 부분은 자바 승. 하지만 C++도 그래도 나름 OOP 가 되는지라 쓸 필요가 있을 땐 요모조모 요긴하게 써먹을 수 있다. 특히나 함수객체 같이 STL 과 섞어 쓸 수 있는 것들, 혹은 상속 등을 이용한 다형성의 이용 등에 익숙해지면 클래스 디자인의 재미에 빠질 수 있다. 속도. 이 부분도 생략. 아, 에피소드 몇 개만 얘기해 보자. 내 친구는 ruby 를 배워볼까, 하더니 PCA를 바로 .. 2013. 5. 9.