C

    socket example 1

    socket example 1

    소켓통신에 대한 코드를 다른 블로그에서 본 후에 약간 수정을 하였습니다. ( 출처 :http://blog.naver.com/hanhi95/220317030958 ) socketServer.c /* * * http://blog.naver.com/hanhi95/220317030958 */ #include #include #include #include #include #include #include #define BUF_SIZE 100 void error_handling(char *message); int main(int argc, char *argv[]) { int serv_sock; int clnt_sock; struct sockaddr_in serv_addr; struct sockaddr_in clnt..

    엔터(enter,개행문자) 입력받기.

    1. 개요 엔터 혹은 개행문자라 불리는 '\n'을 입력받아서 처리하는 코드를 작성해봤습니다. 2. 방법 방법은 2가지로 실험해봤습니다.1) gets2) getchar scanf는 엔터와 몇가지 아스키코드는 입력받지 않는 것으로 취급하기 때문에 논외로 하였습니다. 3. Source 1) gets #include int main() { char ch; gets(&ch); printf("%d\n", ch); if (ch == '\n') printf("Detecting Enter\n"); return 0; } 2) getchar #include int main() { int i; i = getchar(); printf("%d\n", i); if (i == '\n') printf("Detecting Enter\n..

    c++ / 7. POD를 아십니까?

    c++ / 7. POD를 아십니까?( 데이터 구조, Plain old data structure ) 일을 하다가 알게된 개념으로 Array를 POD와 Non POD로 만들어진 2개의 사이에서 삽질을 하다가 알게된 개념입니다. POD 또는 PODS. 이 개념은 C언어의 Struct나 built-in-type과 동일한 메모리 구조를 갖는 object를 의미합니다.즉 memset이나 memcpy와 같은 단순 메모리 복사가 가능한 것인데 여기서 C++의 클래스와 다른 부분입니다. POD의 조건은 다음과 같습니다.1. built-in-type2. 가상 함수가 없고 사용자 정의 할당자와 소멸자를 갖지 않은 class의 object3. non POD를 non-static 멤버로 가지지 않은 class의 object ..

    c++ / 6. memcpy에 대해서 실험해봤습니다.

    c++ / 6. memcpy에 대해서 실험해봤습니다. memcpy나 mem의 함수에 대해서 많이 모르기 때문에 설명서를 읽고 실습을 해보기록 했습니다. memcpy는 복사를 하는 함수인데, 단순히 드는 궁금증. 복사를 할 때 크기가 서로 다르거나 하면 어떻게 되지??그래서 바로 vim을 열고 테스트 코드를 작성해봤습니다. 총 테스트는 2가지입니다.기본 구조는 int 1개, int array1개이고, 첫번째 실험은 int에 값을 준 후, array에 한번은 부족하게, 다른 한번은 넉넉하게 값을 준 경우입니다.두번째 실험은 array에 값을 가득 채운 후, int에 값을 주는 경우입니다.( 값이 채워지는 것을 보기 위해서 초기화는 1로 했습니다.) #include #include using namespace..

    1. Make의 구성은?

    보통 리눅스에서 개발을 하다보면 파일을 컴파일 하고 링크 할 때, make를 많이 사용합니다. 필자도 학교에서 아주 간단한 make만 배워서 사용하곤 했는데, 회사에 오니 그 make가 make가 아닌것이였네요... 그래서 별도로 공부를 시작하려고 합니다. 맨 먼저 만난 블로그는 어느 분이 후배들에게 가르치려고 정리하신 것이라고 합니다. http://developinghappiness.com/?p=26 http://developinghappiness.com/?p=28 위의 블로그를 보면 그동안 이유없이 사용했던 make의 기본적인 기능들을 알 수 있습니다. 가장 핵심적인 부분은 타겟(target), 선행조건(prerequisites), 레시피(recipe)입니다. 타겟은 선행조건의 의존적이고 선행조건이 ..

    [c++] template <typename T>에 대해서

    1. 키워드c++, c, template, typename,T,템플릿, 2. 설명template parameter의 멤버를 사용하고 싶은 경우 typename을 써야한다. 그렇지 않으면 정적멤버로 오해한다.(http://prorepo.tistory.com/164) 이건 무슨 소리일까? 뭐, 됐고, 일단 코드로 놀아보자. 3.이정도가 되면 그냥 이런 문법은 써도 된다는거겠지. #include template class Test { public: T m_store; void setStore(T store) { m_store = store; } T getStore() { return m_store; } }; int main() { int a; int *pa; a = 5; pa = &a; Test pInt; T..

    [c++] warning / suggest parentheses around assignment used as truth value [-Wparentheses]

    suggest parentheses around assignment used as truth value [-Wparentheses] 이건 truth값이 명확하지 않다는 말이다. 코드를 보고 설명하자면, if( list = list->next ) // 이렇게 하면 =인지 ==인지, list인지 list->next인지 모호함으로, if( (list = list->next) ) 이렇게 표현하면 경고 표시가 사라지게 된다.

    포인터와 주소연산자의 차이

    주소연산자는 선언할 때 바로 초기화를 해줘야한다. void insert(char &name); 이런 식으로 insert가 생성되면서 바로 name이 들어가야 하는데 포인터('*')는 그렇지 않다. 따라서 만약 &을 사용해서 코딩을 했는데 초기화에 관련된 에러가 떴다면 한번정도 의심해도 된다.