본문 바로가기

IT/programming42

[C/C++] explode, split 구현 방법과 소스코드 공유 explode, split implode 함수의 반대 동작인 문장의 분리를 하는 explode 역시 vector를 사용해 PHP와 같은 방식으로 구현해보았다. https://github.com/muabow/home/tree/main/src/cpp/explode GitHub - muabow/home: C/C++, PHP, GO source/library C/C++, PHP, GO source/library. Contribute to muabow/home development by creating an account on GitHub. github.com 소스코드 내용 #include #include using namespace std; vector explode(const string _delimiter,.. 2021. 12. 24.
[C/C++] implode 구현 방법과 소스코드 공유 implode implode는 문장의 결합 역할을 하는 함수이다. C++ 개발 시 string 관련 처리를 많이 하게 되는데 implode 함수가 없는 거 같아서 vector를 사용해 PHP와 같은 방식으로 구현해보았다. https://github.com/muabow/home/tree/main/src/cpp/implode GitHub - muabow/home: C/C++, PHP, GO source/library C/C++, PHP, GO source/library. Contribute to muabow/home development by creating an account on GitHub. github.com 소스코드 내용 #include #include using namespace std; stri.. 2021. 12. 24.
[C/C++] signal handler library 활용과 소스코드 공유 signal handler library C/C++ 에는 signal.h 를 사용한 signal 함수가 존재한다. 시스템 인터럽트 외 여러 상황에 사용할 수 있기 때문에 필수로 시그널 처리를 하게 된다. 가장 쉬운 예를 들면 ctrl + c를 통해 SIGINT를 발생시켜 프로그램을 종료할 때 메모리 반환을 하여 메모리 누수를 막거나 소켓 또는 IO 핸들러들의 상태를 닫아주어 graceful 한 종료를 해야 할 때 사용된다. 수많은 프로그램을 작성하면서 번번이 signal에 대한 정의와 시그널 처리에 따른 콜백 함수 등을 작성하기 귀찮아 라이브러리로 작성하였고 이를 공유한다. https://github.com/muabow/home/tree/main/library/cpp/lib_signal GitHub - .. 2021. 12. 24.
[C/C++] C언어 main 함수 전/후에 함수를 실행 하는 방법 C언어 main 함수 전/후에 함수를 실행 하는 방법 10년 전쯤에 이런 질문을 받은 적이 있다. C언어에서 main 함수 전/후에 뭔가 print를 찍는다거나 함수 등을 실행하는 행위를 할 수 있냐고. 나는 안될거다고 얘기했다. C의 entry function 이 main이라 stack의 시작과 끝은 main 함수이기 때문이라 생각하기 때문이다. 근데 물어보신 분은 맞는지 틀리는지 대답을 해주지 않으셨고 어느날 불현듯 그 질문이 생각나서 찾다 보니 가능하다는 글을 보아 갈무리를 하였다. 갈무리 역시 6년 전이지만 정리하는 습관을 기르기 위해 남겨본다. 출처와 내용은 다음과 같다. http://www.geeksforgeeks.org/functions-that-are-executed-before-and-a.. 2021. 12. 21.
[C/C++] pthread condition 설명 pthread condition pthread POSIX 스레드(POSIX Threads, PThread)로 프로그램의 병렬 처리를 제공하는 표준 API, thread는 하나의 프로그램 처리 단위이다. pthread_cond pthread의 조건 변수를 통한 thread 제어 역할을 수행한다. 1. 사용법 #include pthread_cond_t cond = PTHREAD_COND_INITIALIZER; int pthread_cond_init(pthread_cond_t *cond, pthread_condattr_t *cond_attr); int pthread_cond_signal(pthread_cond_t *cond); int pthread_cond_broadcast(pthread_cond_t *con.. 2020. 3. 30.
[C/C++] pthread_mutex_lock 설명 pthread_mutex_lock - 뮤텍스 잠금을 얻거나 해제 1. 사용법 #include int pthread_mutex_lock(pthread_mutex_t *mutex); int pthread_mutex_trylock(pthread_mutex_t *mutex); int pthread_mutex_unlock(pthread_mutex_t *mutex); int pthread_mutex_destroy(pthread_mutex_t *mutex); 2. 설명 * mutex - MUTual EXclusion(상호 배제)devide의 줄임말로 쓰레드간 공유하는 데이터 영역을 보호하기 위해서 사용 - 데이터 영역의 보호는 critical section(임계 영역)을 만들고 임계 영역내에 단하나의 쓰레드만이 진입.. 2020. 3. 30.
[C/C++] C언어 출력에 색깔 입히기 예제 C언어 출력에 색깔 입히기 - print color, ANSI color, 설명, 예제 C 언어로 개발을 하다 보면 출력이나 로그에 색깔을 써야 할 때가 있는데 간단하게 정의해 놓고 사용한다. 샘플 코드는 표와 같이 사용하면 되고, #include #define ANSI_COLOR_RED "\x1b[31m" #define ANSI_COLOR_GREEN "\x1b[32m" #define ANSI_COLOR_YELLOW "\x1b[33m" #define ANSI_COLOR_BLUE "\x1b[34m" #define ANSI_COLOR_MAGENTA "\x1b[35m" #define ANSI_COLOR_CYAN "\x1b[36m" #define ANSI_COLOR_RESET "\x1b[0m" int main(.. 2015. 12. 16.
[C/C++] 음수에서 양수로 변환 예제 음수에서 양수로 변환 - 음수 -> 양수 변환 예제 1. 비트 반전 int a = -10; a = ~a + 1; printf(%d\n", a); 2. 음수 곱하기 int a = -10; a *= -1; printf("%d\n", a); 3. 변수 부호 int a = -10; printf("%d\n", -a); 2014. 12. 19.