C

pchero on June 29th, 2015

for 구문 사용시, 인덱싱하는 order 에 따라, 실행시간에 차이가 발생한다는 글을 보았다(참조: http://process3.blog.me/20030421397) 정말로 그럴까? 한번 확인해 보았다. 결론은? 확실한 차이가 있었다. 이유를 확인해보니, 메모리 캐시와 관련된 내용이었다.   — Program 1 #include <stdio.h> #define MAX_CNT 100 int main(int argc, char** argv) {     int i, j, k;     int test_data[MAX_CNT][MAX_CNT][MAX_CNT];     […]

Continue reading about memory indexing differences

pchero on February 21st, 2014

진행중인 프로젝트에서 Libevent 를 사용중인데.. valgrind 메모리 누수 확인시 자꾸 메모리 누수가 발생하는 것을 확인했다. 어디가 문제일까… 기능상으로는 문제가 없었다. malloc/calloc 할당한 부분도 문제가 없었다. valgrind 가 지목한 문제 발생한 부분은 event_new() 부분이었다. 문제 발생 원인은 잘못된 libevent 사용에 있었다. 나는 다음과 같이 프로그램을 개발했었다. /* * main.c * * Copyright 2014 Sungtae Kim <pchero21@gmail.com> […]

Continue reading about Libevent event driven memory leak

pchero on January 27th, 2014

그동안 막연하게 리눅스에서도 C++ man page 를 볼 수 있겠지… 하는 생각이 있었다. 하지만 실제로는 한번도 C++ man page 를 사용해본 적이 없었다. 사용 하는 방법을 몰라서였다… 그러던 중 오늘 kldp 에서 C++ man page 보는 방법이 올라와서 여기에 포스팅한다.   ubuntu 의 경우, 아래의 패키지를 설치해야 한다. pchero@MyGalaxy:~$ sudo apt-get install libstdc++6-4.7-doc 뒤쪽의 버전 […]

Continue reading about C++ man page on linux

pchero on December 20th, 2013

회사 프로젝트로 wsdl 파일을 이용한 웹 서비스 프로그램을 제작해야 할 일이 있었다. 물론 사용 언어는 C. 먼저 wsdl 파일들에서 header 파일을 추출해야 했다. 이를 위해서 사용한 프로그램은 wsdl2h 총 3개의 wsdl 파일에서 header 파일을 추출해야 했다. 다음의 명령어를 사용했다. $ wsdl2h -c -o SoapEnv.h SendSms.wsdl $ wsdl2h -c -n SendSms -o SendSms.h SendSms.wsdl $ wsdl2h -c -n ReceiveSms -o ReceiveSms.h ReceiveSms.wsdl $ wsdl2h -c -n SmsNotificationManagerService -o SmsNotificationManagerService.h SmsNotificationManagerService.wsdl 위의 명령어를 잘 보면 추출해야 하는 wsdl 파일은 3개인데, 사용한 명령어는 총 4개이다. 정확히는 SendSms.wsdl 파일에서 두개의 header 파일을 추출했다. 그 이유는 실제 컴파일과 라이브러리 구현에 사용할 gsoap를 위해서 기본 header 파일이 필요했기 때문이다.  그리고, 위에 나타낸 옵션 중, −c 옵션은 c 언어를 위한 헤더 파일 생성 옵션, −n 옵션은 namespace 영역을 구분짓기 위해 사용한 옵션이다. 하나 이상의 wsdl 파일을 사용한 라이브러리 제작시, −n 옵션이 특히 중요한데, 이유는 −n 옵션 없이 wsdl2h 를 사용할 경우, 여러개의 wsdl 사용시 서로 혼합된 namespace 영역을 사용하기 때문이다. 이는 나중에 wsdl 파일을 추가 하게 될 경우, 프로그램 코드상에서 호출되는 메소드 이름이 변경이 되는 등 여러모로 곤란이 생긴다. 때문에 반드시 필요한 옵션이다. ref: http://www.cs.fsu.edu/~engelen/soapdoc2.html#tth_sEc8 wsdl2h 를 사용하면 각각의 헤더 파일들이 만들어 진다. 이렇게 만들어진 헤더파일들을 이용해 실제 C 에서 사용 가능한 코드로 만들어줘야 한다.이를 해주는 프로그램이 soapcpp2 이다. 이번 프로젝트에서 다음의 명령어/옵션을 사용했다. $ soapcpp2 -C -c SoapEnv.h $ soapcpp2 -C -c -n -pSendSms […]

Continue reading about Using wsdl files on C

C++ 에서의 자료형의 크기는 컴파일러에 따라 좌우된다고 알고 있었다. 틀린 내용은 아니였지만.. 정확하지는 않았다. 아래 링크에서 정확한 내용을 알 수 있었다. 정확하게는… 크기는 정해져 있지 않지만, C++ 표준에서 지정하는 최소 사이즈가 있다는 것이다. The C++ standard does not specify the size of integral types in bytes, but it specifies minimum ranges they must be able […]

Continue reading about C++ Int, char, double, 등등의 자료형 사이즈..