Language

    표준출력에 텍스트 색상 입히기 (colorize printf format)

    1234567891011121314151617181920212223242526272829303132333435363738394041424344#ifndef __S_PRINT_FORMAT_H__#define __S_PRINT_FORMAT_H__ #define S_COLOR_RED "\x1b[31m"#define S_COLOR_GREEN "\x1b[32m"#define S_COLOR_YELLOW "\x1b[33m"#define S_COLOR_BLUE "\x1b[34m"#define S_COLOR_MAGENTA "\x1b[35m"#define S_COLOR_CYAN "\x1b[36m"#define S_COLOR_RESET "\x1b[0m" #define PRINT printf #define PRINT_RED(..

    [macro] 안전한 형변환을 위한 Macro

    32bit, 64bit 환경을 고려하여 개발을 하고 있다면 형변환을 무시할 수 없습니다.정수형, 포인터형 등 다양한 환경에서 데이터형의 크기가 달라지므로 무작정적인 값 대입을 문제를 초래할 수 있습니다. 그래서 간단한 Macro를 이용해 bit 무관하게 변경할 수 있는 방법을 제시합니다. Callback 함수 등의 User data로 void *를 많이 전달합니다. 이 때 정수형 데이터를 전달하고 싶다면 아래 매크로를 참고해 전달하는 것을 추천드립니다. C언어 자료형에 관한 매우 간단한 코드라 설명은 생략하겠습니다. 123456789#ifndef __S_TYPE_CONVERSION_H__#define __S_TYPE_CONVERSION_H__ #define SINT_TO_POINTER(x) ((void ..

    [C] #pragma pack( [show] | [push | pop] , n )

    #pragma 매크로 중 pack에 관련된 내용을 정리하려 합니다. 해당 내용은 C언어 프로젝트에서 한 번쯤 살펴볼 수 있는 구문인데요, 어떤걸 의미하는지 정리해보고자 합니다. [구문]#pragma pack( [ show ] | [ push | pop ] [, identifier ] , n ) #pragma pack 은 위와 같은 구문으로 구성되어 있습니다. pack 이란 단어가 무슨 의미인지 아시나요? pack 미국·영국 [pӕk] 1. (여행을 가기 위해) (짐을) 싸다 2. (보관・수송・매매 목적으로 물건을) 포장하다 네이버에서 검색해보니 위와 같은 의미를 가지고 있네요. 그럼 아래 예제를 보고 한번 더 얘기해보죠. 1234567891011121314151617181920212223242526272..

    [C++] atomic_flag

    std::atomic_flag는 원자적 Boolean 형입니다. std :: atomic의 모든 특수화와 달리, lock-free가 보장됩니다. std :: atomic 과 달리 std :: atomic_flag는로드 또는 저장 작업을 제공하지 않습니다. 아래 예제는 atomic_flag를 이용해 lock을 얻고 해제하는 간단한 예제입니다. atomic_flag는 매우 쉽게 사용할 수 있습니다. test_and_set() 메서드와 clear() 메서드를 이용해 Lock을 얻거나 해제할 수 있습니다. 그리고 최초 atomic_flag 상수는 ATOMIC_FLAG_INIT으로 초기화 해야합니다 :D linuxias@test $ g++ -std=c++11 atomic_flag.cpp -o atomic_flag..

    C언어 try-catch 흉내내기

    https://github.com/linuxias/linux-system-programming/blob/master/exception/try-catch.c #include #include #define TRY \do { \jmp_buf __buf; \switch (setjmp(__buf)) { \case 0: \{#define CATCH(e) \break; \} \case e: {#define FINALLY \break; \} \default: {#define ETRY \} \} \} while(0);#define THROW(e) longjmp(__buf, e) #define EXCEPTION_1 1#define EXCEPTION_2 2 int main(){TRY {printf("try\n");THROW..

    if __name__ == "__main__"

    if __name__ == "__main__" 은 어떤 의미인가? if __name__ == "__main__": # Doing something __name__은 python 내부변수로 사용된다. python은 C, C++ 등 여러 다른 언어들과 달리 main으로 실행되는 함수가 존재하지 않는다.사용자가 python code 작성 시 'Level 0코드'들을 파일 위에서부터 순차적으로 인터프리터로 처리한다.여기서 'Level0 코드'란 들여쓰기가 존재하지 않는 코드를 말한다. exampleA.py란 파일 내에 해당 if문이 명시되어 있다고 할 때, if __name__ == "__main__" 을 사용하면 exampleA.py를 실행 시켰을 때, __name__이 참이되고, 해당 조건문 내의 로직이 수..