-
[Linux] Binary GLIBC Version Check
Build된 binary의 library dependency를 확인하기 위한 방법은 다음과 같다. 그리고 우리가 확인하고자 하는 library를 pipe를 통해 찾으면 된다. 위 결과를 보면 사용된 shared library의 GLIBC version이 나온다. 현재 설치된 GLIBC version 확인 현재…
-
[Linux] update-alternatives: Ubuntu Package Version 관리
Ubuntu를 사용하면 apt-get 명령어를 통해 쉽게 package들을 설치할 수 있다. 그런데 버전에 민감한 package들 (gcc, python) 들은 여러 version을 설치하고 필요에 따라 변경이 필요하다. 사실 내부적으로 보면 symbolic link를 생성해주는게 전부다. update-alternatives 상세…
-
[Linux] Screen 사용법
Screen이란 linux에서 물리적인 터미널을 여러 개의 가상 터미널로 다중화해주는 도구다. 각 가상 터미널은 독립적으로 동작하며 사용자 세션이 분리되어도 동작한다. 간단히 말하면 이 도구는 백그라운드로 동작하는 다중 터미널을 만들어 준다. 이걸 이용해서 백그라운드 작업을…
-
[Vim] ^M (개행문자) 제거
텍스트를 Vim editor에 붙여넣다 보면 개행문자가 깨져서 ^M으로 표시가 되는 경우가 종종 있다. 이를 제거하기 위한 명령어는 다음과 같다. 참고로 ^M은 Ctrl+v+m 으로 입력해야 한다. Reference https://server-engineer.tistory.com/482
-
[C++] Rvalue Reference
Rvalue reference에 대해 말하기 위해선 Rvalue, Lvalue에 대해서 알아야 한다. Rvalue, Lvalue Rvalue, lvalue라는 용어는 general한 용어로 = 기호를 기준으로 말하면 이해하기 쉽다. Lvalue는 어떤 변수에 저장되어 지속되는 값을 의미하며, Rvalue는 이런 지속적인…
-
[Vim] Cscope – E262: error reading cscope connection 0
Cscope를 사용하던 중 다음과 같은 error가 발생했다. 어느 상황으로 인해 cscope.out file과 vim이 연결이 끊어져서 발생된 문제다. 이를 해결하기 위해서 다음과 같이 해주니 문제가 해결됐다.
-
[C++] Smart Pointer (unique_ptr / shared_ptr / weak_ptr)
기본적으로 C++ language는 garbage collector 기능을 지원하지 않기 때문에 memory dynamic allocation을 하면 deallocation 또한 프로그래머가 고려해줘야 한다. 이런 동작은 프로그램의 memory leak 문제를 발생시킬 수 있기 때문에 프로그램의 안정성을 낮춘다. 이를 위해서…
-
[Vim] Cscope 사용법
사용법 on Vim 검색유형 Description s 키워드를 검색, 즉 해당 단어가 붙은 모든것을 검색 g 해당 함수가 declaration 되어있는 부분 d 해당 함수가 호출하는 함수 목록 c 해당 함수를 호출하는 함수 t 문자열…
-
[Vim] Buffer 명령어
파일을 2개 이상 열게 되면 vim 자체 기능인 buffer에 담기게 된다. Command Description :ls 현재 버퍼에 있는 파일 list 출력 :b[n] n번째 파일로 전환 :bn 현재 파일 기준으로 다음 파일로 전환 :bf 첫…
-
[Python] JSON 파일 활용
프로그램을 수행 할 때 object를 항상 처음부터 만들면 초기 수행 시간이 불필요하게 수행될 경우가 종종 존재한다. 따라서 이럴 경우 기존에 object를 reuse 할 필요가 있는데 Python에선 이런 경우 json 파일을 활용하면 좋다. JSON…