본문 바로가기

고양이의 둥지

(255)
[네트워크/C reference] Special IPv6 주소 검사 매크로 개요 IPv6 주소 체계에서는 'Special IPv6 addresses' 라고 부르는, 미리 정의된 특별한 주소들이 있다. 미리 정의된 비트 패턴(bit pattern) 으로 각 주소의 역할을 구분한다. 최근들어 C언어로 네트워크 프로그래밍을 하면서 IPv6 주소를 다루게 되는 경우가 발생하곤 하는데, 이 주소가 특정 Special IPv6 address 인지 아닌지를 확인 해야 하는 경우가 있었다. 그래서 조금 찾아보니, 이런 경우 유용하게 사용 할 수 있는 매크로 함수가 C의 표준 라이브러리인 glibc 의 netinet/in.h 헤더에 정의가 되어 있었다. 이번 포스팅에서는 이들 매크로 함수들을 간단히 소개한다. 특수 IPv6 주소(Special IPv6 Address) 검사 매크로 함수IEEE ..
[우분투 16.04] 32bit library를 64 bit 우분투 16.04에 설치하는 방법 개요우분투라는 운영체제는 32 bit CPU용 버전과 64 bit CPU용 버전이 제공된다.그런데 종종, 32bit 용으로 빌드 된 실행파일을 64 bit 용 우분투에서 실행시켜야 하는 경우가 있다.그리고 우분투 12.04 LTS의 64bit 버전에서는 꼼수로써, ia32-libs 라는 패키지를 제공해서, 32bit용 실행파일을 실행 시킬 수 있도록 했었다. 그러나 우분투 16.04 에서는 ia32-libs 패키지가 deprecated 처리가 되었다.그 이유는 MultiArch를 사용하도록 유도하기 위해서 인 듯 싶다. 하지만 방법이 있다.아래와 같은 순서로 MultiArch를 설치하고, 32 bit 용 실행파일을 우분투 16.04 의 64bit 버전 에서 실행되도록 할 수 있다. i386 아키텍쳐 활성..
shell prompt에 git branch 이름 표시 / 색상으로 status 표시 git 기본 사용시 불편한 점여러 소스코드 형상관리 툴 중 git을 주로 사용하는데, linux shell prompt에서 사용하다 보면, 불편한 경우가 있다.아래 두가지 경우였다. 1. 현재 git directory의 branch가 어디인지?2. 현재 git directory의 변경사항이 있는지? 기본 상태에서...1번의 경우는, 'git branch' 라고 명령을 입력해야 확인 가능하다.2번의 경우는 'git status' 라고 명령을 입력해야 확인 가능하다. 이게 은근 귀찮다.그래서 shell prompt에서 git directory로 진입을 하면 branch명을 표시하고, 해당 branch명을 다시 status에 따라 녹색/빨간색으로 표시하도록 하고자 한다. .bashrc 파일 수정 HOME di..
[우분투 16.04] 부팅시 프로그램을 자동으로 시작하도록 설정하는 방법 (How to add auto startup applications in Ubuntu 16.04) 프로그램 자동실행 이유우분투 16.04 이 설치된 PC를 켤때 synergy client를 자동으로 실행되도록 하고 싶다.지금은 우분투 PC가 켜지면, shell prompt를 띄우고, 명령어를 직접 입력해서 synergy client를 실행시켜 synergy server PC에 연결되도록 수동으로 사용하고 있다. 이 과정이 번거롭기 때문에, 자동화 하고자 한다. 참고로 synergy는 서로다른 2대 이상의 PC를 연결시켜서, 한쌍의 키보드와 마우스를 이용해 연결된 PC 모두를 제어하도록 도와주는 프로그램이다.본 포스팅에서 설명하고자 하는 것은, 우분투 16.04 PC가 synergy client가 되고, 그외의 PC (윈도우 혹은 Mac 혹은 또다른 우분투)가 synergy server가 되는 상황이다..
[네트워크/C reference] inet_pton 함수 기능 요약 (Summary)inet_pton( ) 함수는 사람이 알아보기 쉬운 텍스트(human-readable text)형태의 IPv4 와 IPv6 주소를 binary 형태로 변환 하는 기능을 한다. 헤더 (Header files)이 함수를 사용하려면 다음 헤더파일을 포함시킨다. #include API 원형 (API Prototype)3개의 파라미터를 가지는 함수이다. int inet_pton(int af, const char *src, void *dst); af [input] - address family를 지정한다. src의 문자열이 IPv4 주소를 나타내는지, IPv6 주소를 나타내는지를 함수에 알린다.src [input] - 문자열 형태의 IP주소를 넣는다.dst : [output] - src를..
[네트워크/C reference] inet_ntop 함수 기능 요약 (Summary)inet_ntop - IPv4 와 IPv6 주소를 binary 형태에서 사람이 알아보기 쉬운 텍스트(human-readable text)형태로 전환해준다. 헤더 (Header files) #include API 원형 (API Prototype)const char *inet_ntop(int af, const void *src, char *dst, socklen_t size); 설명 (Description)이 함수는 네트워크 주소 구조체인 src를 캐릭터 문자열 dst로 변환해주는 함수이다. 네트워크 주소는 IPv4 혹은 IPv6 가 될 수 있으며, 'address family'를 의미하는 af 를 참고하여 src를 해석하게 된다. 결과가 저장되는 dst는 반드시 NULL 포인터가..
TCP Flags: PSH 그리고 URG 개요TCP헤더를 들여다 보면, 1비트 짜리 플래그가 몇개 있다. 1비트로는 0 아니면 1 만을 나타낼 수 있기 때문에, 플래그는 태생적으로 boolean type 이다.이 플래그들은 TCP연결을 통하는 데이터의 흐름을 조절 및 제어 하기 위해 사용된다고 알려져 있다. RFC 3168 에 의해 혼잡 통지(Congestion Notification)을 위해 추가된 CWR 그리고 ECE 플래그를 제외하고나면, 총 6개의 TCP 제어 플래그가 남는다.일단 CWR과 ECE는 논외로 하자. Data Offset 다음을 보면, 6개의 플래그, URG, ACK, PSH, RST, SYN, FIN 이 보인다. 그 중, 아래 4개는 TCP연결의 설정(establish), 유지 관리(management) 및 분리(tear-..
렉서스 뉴IS250 - 그린텍 콘솔박스 트레이 구매 후기 구매 이유 요즘 렉서스 뉴IS250을 잘 타고 다니다가, 문득 부족한 게 생각 났다.동전을 보관할 만한 장소가 마땅치 않다는 것.시청이나 구청 등 지자체에서 운영하는 주차장등을 사용할 때면, 몇백원 단위 요금이 부과되곤 한다.카드로 결제하기에는 애매해서, 천원짜리 지폐를 지불하고 잔돈을 받으면 마땅히 둘곳이 없다. 그냥 콘솔박스에 넣거나, 컵 홀더에 넣긴 하는데...지저분해 보이고, 특히 콘솔박스는 너무 정신없다는 생각이 들었다. 그래서 찾아본 것이, 콘솔박스 트레이! 지금은, 콘솔박스안에 RF방식의 하이패스 단말도 놓고, 지갑도 놓고, 세차카드나 주유적립카드 및 핸드크림, 레모나, 치실 등등이 있다. (치실은 왜있는거지....--?)아무튼 하이패스 단말과 기타 여러가지들이 뒤섞여서 뭔가 필요한것 찾을때..