2018/03/19

    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..

    Strace - trace system calls and signals

    Strace - trace system calls and signals

    Stracetrace system calls and signals strace는 linux에서 발생하는 문제들을 해결할 수 있는 여러 툴 중 system call을 추적할 수 있는 강력한 툴입니다. System call은 open, write, read, mmap... 등등 여러분들도 잘 알고 계신 함수들입니다. System calls은 User process가 kernel에 어떠한 작업을 요청하기 위한 인터페이스 역할을 합니다. (그림 출처 : Self-Service Linux : Mastering the Art of Problem Determination) 여기서 말하는 요청이란 User process에서는 접근할 수 없는 disk, network, memory 같은 시스템 자원에 접근하고 IPC, ..