본문 바로가기

반응형

진리는어디에

(291)
printf 에서 long long, unsigned long long 출력하기 매번 까먹는다. long long x = 9223372036854775807; printf("%I64d\n", x); unsigned long long ux = 18446744073709551615; printf("%I64u\n", ux); 한가지 주의 할 점은 소문자 l(엘)이 아니라 대문자 I(아이)라는 것이다.
템플릿(template) FAQ - Visual Studio 6.0 Bugs 템플릿의 세계에 빠져 살던 요즘.. 동일한 코드가 어디서는 정상적으로 돌아가고, 어디서는 이상동작을 한다거나, 컴파일이 안 되는 경우가 있는데요.. 찾아보니 Visual studio의 버그로 인한 것도 있더군요. 7.0에서는 패치되었다고는 하지만…6.0도 분명히 돈 받고 팔던 것인데…오류 사항이 있으면 패치를 할 생각을 안하고 다음 버전에서 때우다니 은근히 맘에 들지 않는군요. http://womble.decadentplace.org.uk/c++/template-faq.html
ASN.1 ASN.1 이라는 것이 무엇인가? .. 라고 묻는다면..구조화된 데이터(예를 들어 C++ 구조체 혹은 클래스 같은 것들.)에 대해서 기술하고, 인코딩하며, 그 데이터를 전송하고, 수신 하는 경우 디코딩 하는 방법들을 설명하는데 사용되는 일종의 표현법이다...라고 일단 설명 할 수 있겠다. 하지만 사실 이렇게 말하면 머리 속에 무슨 내용인지 쉽게 그림이 그려지지 않는다.(아..지금 이 글을 보는 그대는 그려지는가? 미안하다. 나는 그렇지 않다. 그래서 더 설명 해야겠다) 일단 ASN.1 이 기술한다는 구조화된 데이터,. 즉, 객체(object)라 하면 인/디코딩 하는데 있어 머신혹은 사용하는 언어 따라 천차만별의 방법을 가지는 경우가 종종 있다. ASN.1은 이런 방법에 대해서 어느정도 정규화된 규칙을 제..
템플릿 특화를 이용한 튜플 클래스 'Modern C++ Design'에서 소개되고 있는 튜플(Tuple)이라는 개념은 일종의 레코드로써 우리가 일반적으로 생각하는 구조체라고 생각하면 된다. 단 구조체는 만들 때 마다 멤버 변수의 이름이나 구조체의 이름을 지정해 줘야 하지만 '그것것에 대해 신경 쓸 필요가 없는.. 다시 말하면 '이름없는 구조체'를 튜플이라고 하고 있다. 어디에 쓰는지야 각자 프로그램을 만들면서 살다 보면 스스로 알게 될 것이고, 이번 포스트에서는 템플릿 특화(Template specialize) 를 이용한 튜플 클래스 구현에 대해서 알아 보겠다. Tuple 클래스의 기본적인 개념은 '상속'이다. 클래스 Derived가 클래스 Base를 public으로 상속 한다고 생각해 보자. 이런 경우 Derived는 Base의 모든 ..
C++ #line은 뭐지? Syntax: #line line_number "filename" #line 커맨드는 __LINE__ 과 __FILE__ 의 값을 변경하기 위해 사용된다(파일 명은 옵션이다. 적어 넣어도 되고 안 해도 된다.) 예를 들어 아래와 같이 : #line 10 "main.cpp" …라고 쓰게 되면 현재는 main.cpp 파일의 10번째 줄이 되는 것이다.
[C++] WideCharToMultiByte() 요즘 비주얼스튜디오 2008에서 코딩하고 있는데 이녀석은 디폴트 인코드 값이 UNICODE인지라 1바이트 짜리 char 데이터가 필요 하면 wide charactor에서 multibyte로 변경해주어야만 한다. 매번 쓸때마다 함수들의 파라메터를 찾기 위해 msdn을 찾아 보게 만드는 귀찮은 함수다. 그래서 나름 간단하게 만든다고 만들어 보았다(요걸 라이브러리로 만들면 안되냐고 따지지 마세요..안하는게 아니라 못할만한 이유가 있어서 못하는 것이니..ㅠㅠ) #include std::string wstringTostring(const std::wstring& strSrc) { char* szRet = NULL; int len = ::WideCharToMultiByte(CP_ACP, 0, strSrc.c_str..
[MySQL] 서브(Sub) 쿼리 서브쿼리란? 하나의 테이블에서 검색한 결과를 다른 테이블에 전달하여 새로운 결과를 검색하는 것입니다. 예를 들어 A라는 테이블에서 검색해 나온 결과만을 대상으로 다시 한번 더 쿼리를 날린다는 것입니다. 참고로 하나 이상의 테이블을 연결하여 검색하는 기능은 조인(Join) 쿼리라고 합니다. 기본 문법 SELECT coulmn_name FROM table_name WHERE column_name = ( SELECT column_name FROM table_name WHERE column_name = some_value ); 생각 보다 간단하지 않나요? 기본적인 것은 일반 쿼리와 동일 합니다. 다만, where 에 조건으로 오는 것이 일반 컬럼이 아니라 또 다른 쿼리라는 것이 차이점 입니다. 실행 순서는 괄호..
[MySQL] 조인(Join) 쿼리 조인(Join)의 개념 조인은 여러개의 테이블을 결합하여 데이터를 검색 하는 것입니다. 예를 들어 A와 B라는 테이블을 따로 select하는 것이 아니라 동시에 select를 한다고 생각하시면 됩니다. 그 결과 중 특정 컬럼들의 값을 비교해서 같은 것들(혹은 다른 것들)만 select한다던지 하는 것을 조인이라고 합니다. where 절로 구분 하는 방법에 따라 여러가지 이름으로 불리고 있지만 간단한 개념이 이렇다는 것입니다. 조인(Join)의 종류 연산자에 따른 분류 : EQUI JOIN : 테이블들의 컬럼 값들이 일치하는 경우('=' 연산자 사용) NON-EQUI JOIN : 테이블드릐 컬럼 값들이 일치하지 않는 경우('' 와 같은 비교 연산자 사용) FROM 절의 JOIN형태에 따른 분류 INNER ..
fcntl() 함수를 이용한 File locking 구버젼의 UNIX 시스템에서는 레코드 단위(혹은 byte range 단위)에 대한 loking을 지원 하지 않았다. 하지만 여러가지 상업적인 이유와 역사적인 이유로 인해서 각 UNIX 계열 시스템에서도 레코드 단위의 locking을 지원하기 시작 했다고 한다. #include int fcntl(int filedes, int cmd, .../* struct flock *flockptr */); record locking을 위해서 사용되는 cmd의 인자로는 F_GETLK, F_SETLK 또는 F_SETLKW가 올수 있다. 세번째 인자인 flockptr은 flock 구조체의 포인터다. 인자의 설명은 이름을 통해 직관적으로 알 수 있으니 건너 뛰기로 하고 F_GETLK에 대해서만 간단히 알아 보자. F_GETL..
MySQL - Commmands out of sync MySQL을 사용하던 서버가 Commands out of sync 라는 에러를 내며서 정상적으로 동작하지 않는다. 무슨 일인가 싶어 구글에게 물어 봤다. 그러니 나오는 대답.. If you get Commands out of sync; you can't run this command now in your client code, you are calling client functions in the wrong order. This can happen, for example, if you are using mysql_use_result() and try to execute a new query before you have called mysql_free_result(). It can also happen i..

반응형