목록분류 전체보기 (145)
no swim no life
long long은 gcc에서 지원 cl (VC compiler)에서는 __int64를 사용 (%I64d 로 출력) 부동소수 사용에 문제가 없다면 long double도 가능
read, write와 기본적으로 동일하나, 다수의 버퍼의 데이터를 한번에 출력/기록 할 수 있다. Prototype int writev( int fd, struct iovec iov[], int iovcount ); int readv( int fd, struct iovec iov[], int iovcount ); struct iovec { caddr_t iov_base; // 버퍼의 시작 포인터 int lov_len; // 버퍼의 바이트 사이즈 } struct iovec iov[3]; iov[0].iov_base = buf1; iov[0].iov_len = strlen(buf1); iov[1].iov_base = buf2; iov[1].iov_len = strlen(buf2); iov[2].iov_ba..
ref. Advence Linux System Network Programming fork 부모(parent)와 자식(child) 프로세스로 분기. fork로 프로세스가 복제될 때 자식 프로세스가 상속받는 것들은 메모리 영역과 파일 기술자, 시그널 마스크 등과 같은 정적인 자원들이다. wait/waitpid로 자식 프로세스의 리턴값을 확인 할 수 있다. fork의 리턴값 0 : 자식 프로세스에게 리턴 0 > : 부모 프로세스에게 리턴되며, 자식 프로세스의 PID 부모 프로세스 ..
매개변수(parameter) Prototype에 표시된 변수 리스트 int open( int A, char B ); 인수(argument) 함수 호출 시 사용하는 실제 입력 값 ret = open( 12, 'a' );
__STRICT_ANSI__ : ANSI C 규격으로 작동 (-ansi) _ISOC99_SOURCE : C99 표준을 지원 (-std=c99) _POSIX_SOURCE : POSIX 표준을 의미, == 1 : _POSIX_SOURCE >= 2 : _POSIX_SOURCE + IEEE std 1003.2 >= 199309L : IEEE std 1003.1a-1993 >= 199506L : IEEE std 1003.1b-1995 >= 200112L : IEEE std 1003.1-2001 _XOPEN_SOURCE : POSIX와 XPG 4.2(SUSv1) 표준 지원 < 500 == 500 : SUSv2(UNIX98) == 600 : SUSv3(SUS2002) _XOPEN_SOURCE_EXTENDED : X/..
구조체 데이터 관계를 이해하기 쉽게 하기 위해서 구조체를 사용 포인터 메모리 상의 위치 (32bit) 메모리의 내용을 해석하는 방법 (type) 포인터 오류의 빠른 발견이 중요 포인터를 선언과 동시에 정의 포인터를 할당된 곳과 같은 영역 내에서 삭제 dog-tag 필드의 사용 start-bit와 end-bit를 사용할 수 있으며 dog-tag는 포인터 영역의 상태를 표시 여분의 포인터 변수를 사용 포인터 연산을 단순화시킴으로써 발생하는 성능 향상 연결 리스트나 서로 다른 깊이의 포인터들을 올바른 순서로 삭제 경우에 따라 임시 메모리를 유지하여 메모리 부족시에 이용 중요한 데이터는 메모리를 해제하기 전에 쓰레기 데이터(0xcc)로 덮는다. wapping function 사용 메모리를 삭제하거나 해제한 다음..
신년맞이 도봉산 구피형, 상진형과 망월사로 밥먹으러!! 전날까지 눈이 왔는데도, 이쁘게 쌓이진 않았군.. 단지 얼었을 뿐인 폭포 수정 고드름~ ♪ 망월사 도착 일요일 12시에 가면 밥 줌 구피형님이 불전함에 시주하시고 별거 없어 보이지만, 가서 먹으면 나름 맛있음 설겆이 마치고 나오니 눈 송이가 함박눈이 되어 있었다. 절밥도 얻어 먹었으니 이쯤해서 하산 하산길 약수터 도봉산의 두꺼비 바위 홍어에 막걸리 한잔 이날 내 인생의 막걸리는 서울 막걸리로 결정 됐다. 가볍게 노래도 한곡 해주고, 한해 마무리 관련 블로그 : http://blog.naver.com/zodiac911/150041523268
하산 후, 미리 계획해 두었던 식당을 찾아갔다. 육회비빔밥과 노리고 간 메뉴, 코다리 순대 12,000원 자체 개발 메뉴라 지구상에 이 음식을 파는곳은 이집이 유일하다던데... 진짜임? 코다리를 중간 이상 좋아하는 사람만 추천-_-; 순대는 병천으로~
정상에 오르니 해도 안떴는데 훤~ 하다. 정상의 고사목들 안개가 심하던 날, 일출은 못보나 하는 순간... 바람이 안개를 걷어내었다. 해뜨기 전까지 죽지 않을만큼 춥지만... -_-; 여긴 한번 가봐야지. 올해의 일출 샷 해가 뜨니 산의 색이 변해버렸다. 오늘의 파티~ 상진형과 온도계... 좀 성능의 의심되긴 하지만 실온은 겨우(?) -10도 쯤... 천제단 의미는 네이버로 ㄱㄱ -_-; 하산길 계곡이 너무 깨끗하게 얼어있었다. 깨고 선녀처럼 목욕을 해보고 싶은 생각이 간절했지만... 옷을 주어갈 사람도 없고 ㅋㅋ
2:00 태백 터미널 도착 금요일 밤인데도, 동네에 사람이 없네 일출까지 시간도 많이 남고 해서, 동네 오뎅 파는 아주머니에게 거리를 물었다. 1시간 거리라고 하셔서 걸어가기로 결정. ... 최악의 선택이였음-_-; 이동 중, 잠시 들린 황지연못... 낙동강 수원지란다. 이후로 100분쯤... 지나가는 관광버스와, 택시, 그리고 트럭들만 바라보며 하염없이 걸었다. 결국 택시를 잡아타고 이동 기사님이, 이런 사람들 가끔 있다고... -_-;ㅋ 이래저래 도착해서 매표하고, 장비 착용 완료 아 청바지여... 등산 바지 사자... 유일사 휴게소 유일사 휴게소라 이름 붙은 곳 태백산은 민둥산이라 바람막이가 없다. 경험 있는 사람들이 일출시간에 맞춰 이동하기 위해 대기하길래 눈치껏 대기 중 ㅋ 담배 가이들 노노노 ..
명명된 상수 매직 넘버(magic number)를 피한다. 매직 넘버는 100이나 47524와 같이 아무런 설명도 없이 프로그램 한가운데 나타나는 리터널 숫자이다. (문자열도 마찬가지) named constant를 이용하며, 필요하다면 1, 0은 그냥 사용한다. 정수 곱셈으로 인한 정수 오버플로우에 주의한다. 아래는 정수의 표현범위 이다. 정수형 범위 부호 있는 8비트 -128 ~ 127 부호 없는 8비트 0 ~ 255 부호 있는 16비트 -32,768 ~ 32,767 부호 없는 16비트 0 ~ 65,535 부호 있는 32비트 -2,147,483,648 ~ 2,147,483,647 부호 없는 32비트 0 ~ 4,294,967,295 부호 있는 64비트 -9,223,372,036,854,775,808 ~ ..
warning: comparison is always false due to limited range of data type gcc에서 아래와 같은 코드가 해당 경고를 발생시킬 수 있다. unsigned char btFlag; ... if ( btFlag < 0 ) btFlag는 unsigned 이므로 항상 false 이다. 무심코 넘어갈 수 있는 부분
문제 지향성(Problem Orientation) 기억하기 쉬운 이름은 일반적으로 해결책보다 문제에 대해서 말한다. 좋은 이름은 "어떻게" 보다 "무엇"을 표현하는 경향이 있다. 일반적으로 이름이 문제보다 해결 과정의 어떤 측면을 가리키고 있다면, 이는 "무엇" 보다는 "어떻게"에 대한 것이다. 문제 자체를 가리키는 이름을 사용하도록 한다. 변수 이름의 일반적인 반의어들 begin/end first/last locked/unlocked min/max next/previous old/new opened/closed visible/invisible source/target source/destination up/down 전형적인 불린 변수의 이름 done 무언가 수행되었다는 것을 가리키기 위해서 done을 ..
원문: http://msdn.microsoft.com/ko-kr/library/9s7c9wdw(VS.80).aspx 컴파일러 옵션 범주별 목록 다음은 범주별로 나열한 포괄적인 컴파일러 옵션 목록입니다. 최적화 옵션 용도 /O1 작은 코드를 만듭니다. /O2 빠른 코드를 만듭니다. /Ob 인라인 확장을 제어합니다. /Od 최적화를 사용하지 않습니다. /Og 전역 최적화를 사용합니다. /Oi 내장 함수를 생성합니다. /Os 코드 크기를 우선으로 합니다. /Ot 코드 속도를 우선으로 합니다. /Ox 최대 최적화(/Ob1gity /Gs)를 사용합니다. /Oy 프레임 포인터를 생략합니다. x86 전용입니다. 코드 생성 옵션 용도 /arch 코드 생성 시 SSE 또는 SSE2 명령을 사용합니다. x86 전용입니다...
warning: no newline at end of file gcc에서 소스의 마지막 라인을 빈줄로 남겨두지 않으면 발생한다. 소스코드가 다른 유틸에 넘겨질 때 발생하는 문제를 막기위해서 라는데... 정확히 어떤 경우인지 잘 모르겠는 중-_-; 알려주시면 감사 :)
1. 승선 위치 얼음왕관 북동쪽, 오그림의 망치호가 선회하는 중 지면과 가까워지는 위치를 이용. 자살 후 유령 그리폰에 탄 상태로 대기 하다가, 망치호 안에서 부활. 2. 승선 위치까지 이동 달라란 북동쪽 '은빛십자군 선봉기지'에서 북으로 쭉~ 달린다. 모드레타르 동쪽 성벽은 뛰어 내리고, 산드라고사 추락지 남쪽에 진행방향에서 오른쪽으로 언덕을 올라갈 수 있는 길을 이용. 언덕으로 올라 동북쪽으로 빙~ 절벽 따라 돌면 해당 위치까지 달려갈 수 있다. 3. 주의점 주변에 적대적 NPC가 없다. 4. 승선 후 업적 달성
밥먹으러 간 병천.. 관순 누님이 달리신던 그 곳 온김에 유관순 사우와 생가에 들려보자. 유관순 추모각과, 사우내에 유관순열사 동상 유관순 생가, 찾아가는 시간이 한참 피곤할 때라... 관둘까 싶었지만... 도착 제법 멀다 이 순대를 먹기위해 여기까지 왔다. 병천 시장 입구, 청화집 순대 순대 8,000원, 와인같은 동동주 4,000원 2인분은 기본이지 동동주 한병 달리고 얼큰하게 천안으로 천안 야우리 앞 조형물, 취향이야 도인 아가씨 만나 커피도 한 잔. 시간도 남았는데 잘 놀았다. 제사는 노노
천안 터미널 앞에서 병천행 400번 버스를 타고 도착한 독립기념관. 가는날이 장날이라고, 휴일-_-; 그래도 실내 전시관 빼고는 다 돌아볼 수 있어서 가볍게 산책. 겨레의 큰마당, 백만 태극기. 애들이 살아있어 겨레의 집 어디선가 본듯한 그분, 불굴의 한국인 상, 교과서? 추모의 자리 쌩뚱맞게 만난 광개토대왕릉비와 통일염원의 동산 까지 돌고나니 어느세 오후... 이번 여행의 주목적, 순대를 만나기 위해 병천으로 가자.
7일, 밤 늦게 기호를 만나 한잔 하고 집 구경도 좀 하고 온양에 하나 남았다는 찔질방으로... 호텔에 딸려있는 찜질방 독립기념관으로 고고 너무 달아-_-;;
간만의 휴가에, 바람 쐐러 동서울 첫차로 나서려고 했지만, 일요일 일찍 일어나기 어찌나 힘들던지-_-; 8:30 속리산행 버스 타고, 12시쯤 속리산 관리소 도착 매표소를 막 지나는 길, 이때만해도 아직 가을인 줄 알았지... 해떨어지기 전에 내려와서 온양으로 소주한잔 가야 했기에 바짝 속도내서 올라갔다. 이뭣고 ㅋㅋ 혼자다닐땐 밥도 간단하게 세번 오르면 극락에 갈 수 있다는 문장대. 일단 한번 ㅋㅋ 80% 정도 오를즈음 부터 내리던 눈이 문장대에서는 어느세 눈보라 이상하게도 예보가 정확했던 기상청의 그 날 이 돌은 신선대였나? 아직 봄 천왕봉 도착, 베리 빅 까마귀들이 나를 반겨주었지 후... 총 15km 코스, 저 멀리 찔끔 티어나온 돌이, 천왕봉에서 본 문장대 천왕봉에서 물 한잔, 초콜릿 하나 까 ..
데이터 사용 능력 테스트 친숙한 용어 옆에 1점을, 알지만 확신할 수 없다면 0.5점을 입력한다. ___ 추상 데이터 형 ___ 배열 ___ 비트맵 ___ 불린 변수 ___ B-트리 ___ 문자 변수 ___ 컨테이너 클래스 ___ 배 정도 ___ 연장 스트림 ___ 열거 형 ___ 부동소수점 ___ 힙 ___ 인덱스 ___ 정수 ___ 연결 리스트 ___ 명명된 상수(named constant) ___ 리터럴(literal) ___ 지역 변수 ___ 참조 테이블 ___ 멤버 테이터 ___ 포인터 ___ private ___ 소급 시냅스(retroactive synapse) ___ 참조 무결성 ___ 스택 ___ 문자열 ___ 구조적 변수 ___ 트리 ___ typedef ___ union ___ 값 체인..
게으름 재미없는 작업을 다시 수행할 필요가 없도록 툴을 작성하는 것 지적인 정직함 전문가가 아님에도 전문가인 것처럼 행동하지 않는 것 실수를 기꺼이 인정하는 것 오류 메시지를 막기보다는 컴파일러 경고를 이해하기 위해서 노력하는 것 작동하는지 확인해 보기 위해서 컴파일을 하기보다는 프로그램을 명백하게 이해하는 것 현실적인 일정표를 제공하고 관리자가 일정을 조절할 수 있는지 물었을 때 자신의 입장을 지키는 것 어떤 바보라도 자신의 실수에 대해서 정당성을 주장할 수 있으며 대부분의 바보들이 그렇게 한다.
저는 주석이 책의 표제나 목차와 같기를 바랍니다. 주석은 올바른 섹션을 찾는 데 도움을 주며, 그 다음부터 코드를 읽기 시작합니다. 프로그래밍 언어로 작성된 20줄의 코드를 읽는 것보다는 영어로 작성된 한 문장을 읽는 것이 훨씬 빠릅니다. .... 마치 당신들은 한 번도 다른 사람이 작성한 코드를 수정해야 했던 적이 없었던 것처럼 들리는군요. 저는 제가 바꿔야 하는 두 줄짜리 코드를 찾기 위해서 엄청나게 집중해서 수 백 줄의 코드를 읽을 필요는 없다고 생각합니다.
한 줄에 지나치게 많은 연산을 수행 strcpy( char * t, char * s ) { while ( *++t = *++s ); } strcpy( char * t, char * s ) { do { ++t; ++s; *t = *s; } while ( *t != '\0' ); } t 와 s 는 *s 가 *t 에 복사되기 전에 증가, 첫 번째 문자가 빠진다. 5,000,000 문자열을 복사할 때 첫 번째 버전은 4.81초, 두 번째 버전은 4.35초가 걸렸다. 이 경우에서는 "머리를 굴린" 버전이 11% 정도 속도가 느렸으며, 결국 쓸데없이 머리를 굴린 꼴이 되었다.