기본 콘텐츠로 건너뛰기

4월, 2013의 게시물 표시

[라이브러리] 하나의 16진 문자를 정수로 변환하기

문자열을 숫자로 바꾸어 주는 C 표준 API는 있지만, 하나의 문자를 숫자로 바꾸어 주는 API는 없는 것 같다. 그래서 아래와 같이 문자를 정수로 바꾸어 주는 함수를 두 가지 방식으로 구현해 보았다. #include <stdio.h> #include <string.h> int ctoi_v1(char c) { if (c >= '0' && c <= '9') { return (c - '0'); }  else if (c >= 'A' && c <= 'F') { return (c - 'A' + 0x0A); } else if (c >= 'a' && c <= 'f') { return (c - 'a' + 0x0A); } else { return -1; } } int ctoi_v2(char c) { switch (c) { case '0': return 0; case '1': return 1; case '2': return 2; case '3': return 3; case '4': return 4; case '5': return 5; case '6': return 6; case '7': return 7; case '8': return 8; case '9': return 9; case 'A': return 0x0a; case 'B': return 0x0b; ...

GIT과 함께 vimdiff 편리하게 사용하기

GIT으로 관리하고 있는 소프트웨어 프로젝트에서 수정한 파일들을 마지막으로 commit한  파일들과 비교하여 수정 내용을 간단히 확인하고자 할 때에는 아래 명령을 사용할 수 있다.      $ git diff 하지만 수정한 내용이 많거나, 비교를 하면서 편집을 계속하고자 한다면 아래의 명령을 사용하는 것이 더욱 편리하다.      $ git difftool -y -t vimdiff 위 명령을 실행하면 여러 종류의 비교 도구 중 하나인 vimdiff로 수정 내용을 보여 줄 것이다. vimdiff 창에서 수정 내용을 확인하고 편집을 하는데 편리하게 사용할 수 있는 명령들을 정리해 보았다. 1. 윈도우간 이동      CTRL-W w  : 다음 윈도우로 이동      CTRL-W h  : 왼쪽 윈도우로 이동      CTRL-W j  : 아래쪽 윈도우로 이동      CTRL-W k  : 위쪽 윈도우로 이동      CTRL-W l  : 오른쪽 윈도우로 이동 2. 윈도우 위치 옮기기      CTRL-W H  : 왼쪽으로 옮기기      CTRL-W J  : 아래쪽으로 옮기기      CTRL-W K  : 위쪽으로 옮기기      CTRL-W L  : 오른쪽으로 옮기기   수직 분할 상태에서 윈도우를 상하로 이동시키면 수평 분할로 바뀐다.  3. 폴더 열기 및 접기   폴더 표시 (+, -)가 있는 행에서 아래 문자를 치면 폴더가 열리고 접힌다. ...

SSH로 암호 입력하지 않고 로그인하기

암호를 입력하지 않고 SSH로 서버에 로그인하는 방식은 접속해야 할 서버가 많아서 일일이 암호를 지정하고 기억하는 것이 수월하지 않을 때, 또는 스크립트로 작업을 하는데 사용자가 일일이 암호를 입력해야 하는 상황을 피하고자 할 때 편리하다. 이 글은 클라이언트, 서버 모두 OpenSSH를 사용하고 있고, 아래와 같은 계정을 가지고 있다고 가정하였다.     클라이언트 컴퓨터에서 사용자 계정       - 사용자 아이디: myid_client       - 홈 디렉토리: /home/myid_client     서버 컴퓨터에서 사용자 계정       - 사용자 아이디: myid_server       - 홈 디렉토리: /home/myid_server 1. 클라이언트, 서버 설정하기 1) 클라이언트 컴퓨터에서 SSH 키 생성하기 클라이언트 컴퓨터의 myid_client 계정에서 ssh-keygen 명령을 실행하면 아래와 같이 키를 저장할 파일 이름과 암호를 지정하라는 프롬프트가 세 번 뜰 것이다. 세 번 모두 그냥 엔터 키를 치면 나중에 로그인시 암호를 요구하지 않는 방식으로 기본 파일 이름을 사용하여 키를 저장한다.     $ ssh-keygen -t rsa     Generating public/private rsa key pair.     Enter file in which to save the key (/home/myid_client/.ssh/id_rsa):     Created directory '/home/myid_client/.ssh'.     Enter passphrase (empty for no ...

VirtualBox에서 Ubuntu (64 bit) 설치하기

* 설치 환경: Windows 7 1. 설치하기     1.1 VirtualBox 설치 프로그램 다운로드         1) 다운로드 사이트             https://www.virtualbox.org/wiki/Downloads             * 다운로드 링크                 VirtualBox platform packages.                     VirtualBox 4.1.18 for Windows hosts -> x86/amd64         2) 설치 프로그램                 VirtualBox-4.1.18-78361-Win.exe              1.2 Ubuntu 설치 프로그램 다운로드              1) 다운로드 사이트             http://www.ubuntu.com/download/desktop             * 선택 사항                 64 bit         2) 설치 프로그램   ...

Visual C++ 2010 Express로 Qt 프로그래밍 시작하기

* PC 운영 체제     Windows 7 (64비트 운영 체제) 1. 개발 도구 설치          1.1 Visual C++ 2010 Express         http://www.microsoft.com/visualstudio/eng/downloads#d-2010-express                      Visual C++ 2010 Express     1.2 Qt              http://qt-project.org/downloads                  Qt libraries 4.8.3 for Windows (VS 2010, 235 MB)          1.3 참고 사항              - Visual C++ 2008 Express는 Windows 7에 설치되지 않는다.         - Qt libraries 4.8.3 for Windows는 VS 2012용으로 제공되지 않는다. 2. 환경 변수 설정     Visual C++ 2010 Express와 Qt 설치 경로를 참조하여 해당 프로그램의 실행 경로를 PATH 변수에 추가해 준다.         C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\bin ...

[BLE] TI CC2540 Mini DK 사용하기 - KeyFobDemo

1. 문서 및 소프트웨어          1.1 문서              가. Bluetooth Low Energy CC2540/41 Mini Development Kit User's Guide (http://www.ti.com/litv/pdf/swru270c)             4. Using BTool             Appendix         나. CC2540/41 Bluetooth Low Energy Software Developer's Guide (http://www.ti.com/lit/pdf/swru271)             4. Working with Projects using IAR Embedded Workbench 8.10.4         다. CC2540 Bluetooth Low Energy Sample Applications Guide (http://www.ti.com/litv/pdf/swru297b)             9. KeyFobDemo          1.2 소프트웨어         가. Bluetooth low energy software stack and tools 1.3 (www.ti.com/blestack)             - KeyFobDemo 애플리케이션과 BTool을 포함하고 있다.     ...