1. 유닉스에서의 파일 유닉스에서의 파일이 가지는 의미는 타 OS들과는 다른 독특한 의미를 지닌다. "유닉스 시스템에서는 모든것이 파일로 돌아간다" 란 말이있다. 장치나 혹은 네트웍통신을 위한 소켓,또한 파이프, FIFO등을 다룰때도 파일개념이(실지로 파일이다.)적용되기 때문이다. 그만큼 파일이 중요하기 때문에 우리는 가장 처음 LOW LEVEL(저수준) 파일입 출력을 보겠다. 2. 왜 LOW LEVEL File IO 인가? 일반적으로 C프로그래밍을 하면서 printf()나 scanf()등의 입축력 함수들을 많이 다뤄봤을것이다(이들을 표준 라이브러리라 한다). 하지만 우리가 여기서 습득할 함수들은 일명 System Call 함수 즉, 커널에서 제공해주는 저수준의 함수이다. 이말은 그만큼 더 커널,시스템에..
클루는 누가, 어떤 방에서, 어떤 흉기로 살인을 저질렀는가 하는 것을 맞추는 게임입니다. 이 3가지 것만 맞추면 된다고 하지만, 생각보다 간단하거나 쉽지 않죠. 특히, 초보 게이머들이 처음에 접하는 게임 중의 하나가 이 클루 인지라, 그 요령이나 방법에 있어 잘 몰라 허둥대다가 다른 사람이 맞추는 것을 감탄만 하며 쳐다보고 있기 마련입니다. 하지만 당신도 클루의 명 수사관이 될 수 있습니다! 1. 표기 방법의 전환을 해보자! 플레이어에게 집중하자. 자, 당신은 그 동안 어떻게 표기를 하며 추리해왔는가요? 그것은 효율적 이었나요? 이기는 확률이 높았는지요? 만약 그렇지 않다면, 다음과 같은 방법을 한번 써보십시요. 표기를 할 때, 추리 노트의 빈칸 위의 가로 축은 사람으로 정합니다. 여기서의 사람이라 ..
Edit Control에는 WM_COPY라는 메세지가 있는데요, Edit Control에서 WM_COPY를 사용 할 경우 셀렉트된 부분을 복사하게 되지요. 하지만 셀렉트 하지 않고 Edit Control내의 모든 내용을 한번에 복사 할 수 있습니다. 이렇게~ SendMessage(Edit1,EM_SETSEL,0,-1); SendMessage(Edit1,WM_COPY,0,0); EM_SETSEL은 선택 영역의 시작과 끝점을 변경 하는 메세지인데요, wParam으로 시작점, lParam으로 끝점을 전달합니다. wParam에 0, lParam에 -1을 넣으면 전체 선택이에요 :) 아 그리고 wParam이 -1이면 선택영역을 해제하게 된답니다! p.s>Edit Control에 지정된 문자를 샥~ 하고 입력해주고..
분명히 WM_LBUTTONDBLCLK: 라는 더블클릭 메세지가 존재함에도 불구하고 더블클릭 할 경우 실행되지 않아요. 어떻게 해결해야 할까요? 윈도우를 생성할 때 style에다가 CS_DBLCLKS를 추가해 주면 됩니다~~ wc.style = CS_HREDRAW | CS_VREDRAW | CS_DBLCLKS; 이렇게요~ 그리고.. 리스트박스에서 더블클릭 했을때의 메세지는 LBN_DBLCLK:인데.. 이것역시 그냥은 먹지 않아요. 역시나~ 생성할때 스타일에 LBS_NOTIFY를 써줘야 합니다. hList=CreateWindow("listbox",NULL,WS_CHILD | WS_VISIBLE | WS_BORDER | WS_VSCROLL | LBS_NOTIFY,10,10,300,300,hWnd,(HMENU)..
프로그래밍 되어있는 소스들을 건들다 보면 #ifdef #ifndef #endif #include #define 이런것들을 볼 수 있는데~~ '전처리기'라고 하죠~ #include와 #define은 모두 아실테고.. 나머지 세개를 볼까요? 너무나 쉽습니다 #ifdef STAR //STAR가 define되어 있다면 #define A B #endif #ifndef STAR //STAR가 define되어있지 않다면 #define A C #endif 이게 다에요~ #endif는 반드시 #ifdef또는 #ifndef와 함께 쓰입니다. stdafx.h를 보면 #define WIN32_LEAN_AND_MEAN // 거의 사용되지 않는 내용은 Windows 헤더에서 제외합니다. // Windows 헤더 파일: #incl..
무효화 영역을 설정할때, 즉 WM_PAINT를 호출하기 위해 주로 쓰는 명령어는~~ BOOL InvalidateRect(HWND hWnd, CONST RECT *lpRect, BOOL bErase); 인데 자~ 다음같은 명령을 한번 처리해보도록 하죠 static int tmp=333; //333은 0이나 1이 아니도록 아무거나 써준 숫자랍니다. WM_PAINT: if(tmp == 0) process tmp0; else if(tmp == 1) process tmp1; break; WM_LBUTTONDOWN: tmp = 0; InvalidateRect(hWnd,NULL,TRUE); tmp = 1; break; 자~ 마우스 왼쪽 버튼을 클릭할 경우 process tmp0이 처리될까요? 아니면 process t..
1. Drum - 반복이 많은 곡이라면 드럼킷에 다른 '여러가지 타악기'를 섞으면 훨씬 많은 변화를 줄 수 있다.(마라카스, 봉고 등등) - reverse Cymbal : 벨로시티가 올라가며 '치익~'하는 심벌 2. Bass - 레가토(이음줄) 기능으로 모두 붙이기 보단, 띄울 곳은 띄어서 '리듬감'을 살려라. - 끝에 간결한 반주로 조용히 끝나는 곡에서, 베이스를 쉬다가 맨 마지막 음에만 깔아주면 분위기가 한결 좋다.(이태윤씨가 자주 쓰시는 방법) - ex.) 화려하게 나가다가 끝에 피아노와 보컬만 들어가고 마지막에 베이스 깔아줌. 3. 중간에 "Break"를 잘 걸어라. 곡이 진행되다가 갑자기 멈춘듯한 느낌. - 듣는이는 마음속으로 리듬을 세면서 다음에 나올 부분을 기대하게 된다. - ex.) 리듬 ..
동적으로 major number를 할당하고 device node를 생성하는 script~ #!/bin/sh module="scull" device="scull" mode="664" # 스크립트로 전달한 모든 argument를 가지고 insmod를 호출한다. /sbin/insmod -f ./$module.o $* || exit 1 # 기존에 존재하던 node를 제거한다. rm -f /dev/${device}[0-3] # /proc/devices 파일로 부터 major number를 읽어온다. major=`awk "\\$2==\*$module\" {print \\$1}" /proc/devices` # sed를 사용한 예제. # major=`sed -ne "/$module/s/ *\(.*\) *$module/..
- Total
- Today
- Yesterday
- C
- Quiz
- database
- java
- driver
- jni
- 프로그래밍
- linux
- android
- NDK
- gcc
- algorithm
- winapi
- 리눅스
- C++
- jni강좌
- it
- 음악
- db
- 드라이버
- Visual C++
- AWS
- 안드로이드
- Python
- Troubleshooting
- source
- API
- Cloud
- MFC
- kering
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |