- Today
- Total
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
- 재능이의 돈버는 일기
- StresslessLife
- K_JIN2SM
- 소소한 일상
- My Life Style & Memory a Box
- Blog's generation
- 공감 스토리
- 취객의 프로그래밍 연구실
- Love Me
- Dream Archive
- 세상에 발자취를 남기다 by kongmingu
- hanglesoul
- 카마의 IT 초행길
- 느리게.
- 미친듯이 즐겨보자..
- Joo studio
- Gonna be insane
- 악 다 날아갔어!! 갇대밋! 왓더...
- xopowo05
- 맑은공기희망운동
- 엔지니어 독립운동
- 혁준 블로그
- Simple in Complex with Simple
- 무의식이 의식을 지배한다
목록★─Programing/☆─C | C++ (76)
드럼치는 프로그래머
파일 입.출력 파일 입.출력은 앞으로도 매우 중요하게 쓰이는 부분이다. 어떤 파일로부터 데이터를 읽어들이고 또 데이터를 어떤 파일에 저장하는 것을 말한다. 데이터 저장과 불러오기 기능을 구현한것 읽기 / 쓰기 전용 , 읽기 / 쓰기 혼합 모드 기능 파일을 열고 닫는 작업이 쌍으로 존재한다. [파일 오픈] // 성공시 해당파일의 포인터. 실패시 NULL 포인터 리턴 * FILE *fopen(const char *filename, const char *mode) ; - filename : 문자형 포인터로 사용할 파일 이름을 지정 - mode : 파일에 대한 접근 방식 - 리턴값 : open 한 파일을 가리키는 파일 포인터 mode 에는 기본적으로 r, w, a 가 있고 세부적으로 바이너리 코드(이진모드)와 ..
WinCE환경에서는 time()함수가 없어서(동작하지 않아서, 컴파일되지 않아서..) 자료를 찾다가 보니까.. 다음과 같은 사이트에서 잘 설명하고 있다(WinCE time()). 그 내용을 보면 다음과 같다. #ifdef _WIN32_WCE #include // time.h 를 include 해도 Windows CE에서는 time 함수가 작동하지 않는다. // 별도로 구현한다. time_t time(time_t *inTT) { SYSTEMTIME sysTimeStruct; FILETIME fTime; ULARGE_INTEGER int64time; time_t locTT = 0; if ( inTT == NULL ) { inTT = &locTT; } GetSystemTime( &sysTimeStruct );..
sleep(int seconds) : sleep()의 정수는 일반적인 초를 나타냄. 즉 sleep(10)하면 10초후에 다음 작업을 수행. usleep ( int micro_seconds ) : usleep()의 정수는 micro초를 나타냄. 즉 usleep(1)하면1/1000000초를 나타냄. usleep(1000000)하면 1초후에 다음 작업을 수행. usleep은 보다 정밀한 sleep()을 위해서 사용하는 함수. [출처] http://blog.naver.com/hajiheon?Redirect=Log&logNo=19409871
Window GetTickCount 처럼... unsigned int GetTickCount() { struct timeval gettick; unsigned int tick; int ret; gettimeofday(&gettick, NULL); tick = gettick.tv_sec*1000 + gettick.tv_usec/1000; return tick; } [출처] http://blog.naver.com/PostView.nhn?blogId=hyunaa1&logNo=30113022065
설명 time_t 값에서 표준시간지역 시간 값을 구하며, 시간 정보는 아래와 같은 struct 값으로 구해집니다. struct tm { int tm_sec;/* Seconds.[0-60] (1 leap second) */ int tm_min;/* Minutes.[0-59] */ int tm_hour;/* Hours.[0-23] */ int tm_mday;/* Day.[1-31] */ int tm_mon;/* Month.[0-11] */ int tm_year;/* Year- 1900. */ int tm_wday;/* Day of week.[0-6] */ int tm_yday;/* Days in year.[0-365]*/ int tm_isdst;/* DST.[-1/0/1]*/ #ifdef__USE_BSD l..
linux에서 timer를 사용하기 위해 만들어본 class입니다. :) 각 파일 내용은 첨부파일이나 아래 내용을 참고하세요. main.cpp는 구현한 API를 이용해서 만들어본 예제 프로그램입니다. [ 총 4개 API ] - create_timer(): timer manager 생성 - set_timer(): timer 추가, 다수의 timer 추가 가능 - delete_timer(): set_timer()로 추가한 timer 삭제 - destroy_timer(): create_timer()로 추가한 timer manager 삭제 [ 컴파일 예시 ] g++ -o sample main.cpp Timer.cpp -lrt > Timer.h └ 접기 > Timer.cpp └ 접기 > main.cpp └ 접기
여기서 구현하고자 하는 Timer는 단순히 현재 시간을 얻어오려는 함수가 아니라 일정 시간마다 특정한 함수를 수행하게 해주는 Timer를 말한다. Windows의 onTimer 함수처럼 말이다. Linux에서도 onTimer와 같은 함수를 쉽게 만들 수 있는데, 아래와 같이 구현하면 된다. #include #include #include void StartTimer (timer_t timerid, void (*Func)(int), long nsecInterval) { struct itimerspec value; struct sigevent av_sig_spec; av_sig_spec.sigev_notify = SIGEV_SIGNAL; av_sig_spec.sigev_signo = SIGRTMIN; val..
아 개념이 완전히 잡혔었다 생각했었는데 역시 군대가서 머리가 포맷된듯... 그것도 로우레벨 포맷 3회로!!!!!!! 아무튼 오버로딩과 오버라이딩의 차이점을 알아보자... - 오버로딩 : 기존에 메소드의 인자를 이용하여서 하나의 함수에 여러가지 기능을 만드는것. (어렵다..... 젠장 말이 어렵다 어려워~) 기존에 int a(int a);라는 함수와 또다른 int a(int a, char b)가 존재한다고 가정한다. main()에서 호출시 a(10); 이라고 호출하게 되면 첫번째 int a(int a)라는 함수가 호출된다. 만약 a(10,'x'); 를 호출했다면 후자인 int a(int a,char b)가 호출되게 된다. ( 이것이 오버로딩!!!!!!!!) 이것은 주로 생성자 메소드를 정의할 때 많이 사용..
callback 함수는 아마 WinAPI 프로그래밍할 때 많이 보셨을겁니다. callback이란 무엇일까요? 해석해보면 "불러-다시" 뭐 이렇게 되나요...ㅋ 찾아보니 정의는 이렇군요. 호출될 함수를 알려 주어 다른 프로그램 또는 다른 모듈에서 함수를 호출하게 하는 방법. 일반적으로 운영 체계(OS)가 호출할 애플리케이션의 함수를 지정해 특정한 사건 또는 메시지가 발생했을 때 호출되도록 지정할 수 있다. 이런 함수를 콜백 함수라고 한다. 그냥 함수 호출과 callback 함수 호출의 차이점은 "제어권"에 있습니다. 일반적으로 함수 호출은 조건 1이면 1번 함수를 불러서 처리, 2면 2번 함수 불러서 처리... 이런 식입니다. 즉, 우리가 어떤 처리가 필요할 때 함수에게 그 작업을 맡기는 것이죠. 그런데 ..
프로젝트를 VS2002 에서 VS2005로 바꾸는데 있어 프로젝트를 마이그레이션 한 후 빌드를 해보니 무수한 경고 메세지가 쏟아져 나왔다. 대부분의 에러는 함수가 안전하지 않다고 다른 함수로 변경하라는 메세지 이다. 이 메세지를 무시하려면 다음을 입력해 주면되지만... #pragma warning(disable:4996) 아무래도 경고 메세지를 없애는게 좋을듯 싶어 관련 정보를 찾아 보았다. Visual Studio 2005로 버전업 하면서 몇몇 CRT 함수들이 "_s" 라는 말꼬리를 붙여 추가되었다. 문자열 버퍼를 사용하는 CRT 함수들이 예전에는 char형 포인터만 넘겨주면 되었는데 2005에서는 대상버퍼의 크기를 함께 넘겨주어야 한다. 좀더 안전성을 추구하는 모양이다. 그래서 "_s" 라는 말꼬리가..