소프트웨어
[c언어] SET_BINARY_MODE가 무엇인가??
1.Zlib의 예제를 하다가 SET_BINARY_MODE(stdin)등이 나왔다. 2.검색 결과는 아래와 같다. 텍스트 모드와 이진 모드(Text Mode and Binary Mode)텍스트 형식과 이진 형식은 숫자를 저장하는 방법의 구분이고, 텍스트 모드와 이진 모드는 도스 파일의 해석에 대한 구분이다. 텍스트 모드와 이진 모드의 차이는 유닉스에서 유래된 C언어와 도스 운영체제의 차이점에서 비롯된다. 텍스트 모드는 도스 파일을 유닉스 파일처럼 보이기 위해서 개행문자와 파일의 끝을 C언어가 변환시킨다. 이진 모드에서는 도스 파일을 변환없이 그대로 보인다. 아래의 주소에 똑같은 글과 더 많은 소스가 존재한다.(예제 소스에는 SET_BINARY_MODE를 사용하지 않는다.)http://donghwada.ti..
[c++] mutex, 그는 자신이 걸어 놓은 lock을 통과할 수 있을까?
1.mutex로 걸어놓은 자신의 lock을 자신이 다시 lock에 접근했을 때 통과할 수 있을까? 2.기본 바탕 코드 #include #include int main() { pthread_mutex_t m_mutex; pthread_mutex_init(&m_mutex, NULL); printf("Here is start point lock area\n"); pthread_mutex_lock(&m_mutex); printf("Here is lock area\n"); pthread_mutex_unlock(&m_mutex); printf("Here is out of lock area\n"); pthread_mutex_destroy(&m_mutex); return 0; } 출력이 순서대로 된다. 3.lock을 ..
[c언어] 데이터 영역을 설명한 포스트입니다. 재미있네요ㅎㅎ
이걸 알고 있으면 기본적으로 스텍에 선언해야 할지 아니면 힙에 선언해야 할지 어떻게 해야 내가 생각하는 방식대로 동작을 시킬 수 있을지 판단하는데 많은 도움이 될 것 같습니다. 원본 주소는 아래 있습니다^^. ( http://wwww7.com/bbs/zboard.php?id=Study&page=1&sn1=&divpage=1&category=3&sn=off&ss=on&sc=on&select_arrange=headnum&desc=desc&no=57 ) 텍스트 영역 : 일반적으로 프로그램의 실행코드가 존재 하는 영역입니다. 내 자신이 작성한 코드들이 여기에 속합니다. 데이터 영역 : 전역변수나 정적(static) 으로 사용되는 메모리를 의미 합니다. 이를 다시 사용되는 쓰임새에 따라서 3가지로 나눌수 있습니다..
[c++] pthread의 detach란...
1.pthread_join을 사용하다가 join보다 더 괜찮은 것이 있다는 소식을 듣게 되었다.그 이름은 'detach' detach는 thread가 할일이 끝나면 알아서 자원을 해제하고 없어진다고 한다.이것이 되는 근본적인 바탕은 detach 옵션을 주면 main thread와 sub thread가 분리되서 sub thread가 죽으면 그냥 해제되는 것이라고 한다. 2. 사용하는 방법은 2가지가 존재한다.detach를 thread create하기 전에 설정할 것이냐, create한 후에 할 것이냐.어떤것을 하던지간에 해제되긴 하지만 논리 순서상 깔금한 것은 pthread가 생성되기 전에 선언하는 것이다. 3. 두가지의 사용 방법. (http://www.morenice.kr/75)( copy : http..
[펌] pthread 자원 해제에 대한 이야기(pthread_detach, pthread_attr_setdetachstate)
(http://www.morenice.kr/75) pthread 자원 해제에 대한 이야기(pthread_detach, pthread_attr_setdetachstate)2012/01/11 00:25 일반적으로 pthread_create를 통해서 쓰레드가 생성되고 다 사용된 쓰레드는 해당 쓰레드를 호출한 곳에서 pthread_join을 통하여 해당 쓰레드의 자원을 해제하여 종료하는 흐름을 갖습니다. 만약 생성된 쓰레드를 pthread_join으로 처리하지 않는다면 아무리 쓰레드가 종료되었다고 해도 자원이 반환되지 않습니다. 이렇게 남겨진 자원은 메모리릭으로 간주되기 때문에 pthread_join은 쓰레드간의 동기작업과 자원 해제를 위해 필수적입니다. 하지만 pthread_join을 하지 않고도, 생성된 쓰..
[c++] fwrite의 thread-safety란
1.fwrite의 기능은 thread에 safety하지 못한가?구글링을 해보니깐 thread-safe와 atomic이란 두개의 개념이 존재했다. 이것 먼저 집고 가자. 2. thread-safe란멀티 thread에 의한 동시에 작업되는 공간에서 보장된 신뢰도 있는 작업을 할 수 있는 데이터 구조에 대한 것을 의미한다.(http://en.wikipedia.org/wiki/Thread_safety) 3. atomic이란대략 자원경쟁을 막는 하나의 데이터를 보호하는 것같은데.. 찾기가 어렵네;(http://2cpu.co.kr/bbs/board.php?bo_table=QnA&wr_id=286485) 정리 : atomic이란 원자와 같은 성질을 같은 구조로 thread safety도 만족하면서 예상되는 결과도 보..
[c++] 변수 선언에 대해서
1. 변수 선언을 별생각 안하고 하다가 복병을 만났었다.그래서 주변 구루분들에게 여쭤보았다. 2. 변수를 선언하는 것은 스택에 공간을 할당하면서 어떤 타입으로 쓸지를 선언하는 것이다.즉 int, int *, int ** 등이 성질이 동일한 공간에 할당되지만 각기 기능이 달르게 설정되어 있어서 실제로 동작하는 방식도 다르게 된다. 여기서 생각해볼때 변수의 타입은 선언하는 것의 저장할 모양을 명시함과 동시에 논리적인 저장 구조를 갖는다는 생각을 하게 되었다. 3.예시를 하나 적는다. void main() { char ****a; char ***b; char **c; char *e; char d; e = &d; c = &e; b = &c; a = &b;} 이런 식으로 구성되며 b는 주소의 (1) 주소의 (2)..
[c++] const char vs char 비교 실험
"결론은 그냥 쓰니깐 되더라."자세한건 자세히 설명 나와있는 블로그로.. 저는 코드 중심으로 모으니깐요..^~^ 1.그냥 한번 해보았다. 서로 값 주고 받기.const char가 char한테 주는 형식으로. 2.이건 잘 동작한다. #include #include #include int main() { const char array[] = {"abcdefg"}; char *pStr; pStr = (char *)malloc(sizeof(char)*10); strcpy(pStr, array); printf("%s\n", pStr); return 0;} 3.이러한 방식으로 값이 주고 받기도 한다.여기서 포인트는 char의 포인터의 주소를 줘야지 그 주소를 기반으로 한 포인터 한줄(배열)이 생겨난다.만약에 포인터..