Archive: 2019/9

C++ std::function 와 std::bind 사용법

std::function 란?C++11 부터 추가된 기능으로, C의 함수 포인터를 대체한다.아래와 같이 사용할 수 있다. 1234567891011void addAndPrint(int a, int b){ int sum = a + b; std::cout << sum << "\n";}std::functio

lsof - open 된 파일에 대한 정보 출력

lsof 란 ?lsof 는 List Open Files 의 약자이고, 시스템에서 열린 파일 목록을 보여준다.여러가지 옵션이 많지만 주로 아래 명령어들만 사용했다. 특히 특정 프로세스가 file 을 열고 닫지 않아서 발생하는 error 및 crash 를 잡을 때 lsof - p 를 이용하면 어떤 파일을 닫지 않아 fd leak 이 발생하는지 알 수 있어서

C++ std::vector push_back 보단 emplace_back 을 사용하자

emplace_back 을 사용하자emplace_back 은 c++11 에 추가된 std::vector 의 멤버함수다.보통 vector 에 값을 넣을 때, 아래와 같이 push_back 을 사용할 것이다. 123456std::vector<std::string> strList;// 이렇게 객체를 하나 선언해서 넣거나std::string A = &q

Ubuntu SSH Welcome message 추가하기

client 가 SSH 에 접속할 때마다 출력되는 Welcome message 를 추가하는 방법이다.(Ubuntu 18.04 기준) 123456# /etc/update-motd.d 에 99-custom 을 생성해줌.vi /etc/update-motd.d/99-custom# 내용 예제printf "### 내용 입력 ###"who who 는

C++ Rvalue 와 std::move 에 대한 이해

Rvalue 란 무엇인가?Rvalue, 우측값은 대입 시에 항상 오른쪽에만 오는 식을 말한다.예제로 이해하는 것이 쉽다. 123456789101112131415int doSomething(){ ... return z;}int x = 10; // x 는 Lvalue, 10은 Rvalueint y = 20; // y 는 Lvalue,

Linux mount 및 reboot 후에도 자동으로 mount 시켜주기

mount 기본 명령어기본적으로 아래 명령어를 사용하면 된다. 12# /dev/sda1 저장매체를 /mnt/myMount 로 마운트한다.mount /dev/sda1 /mnt/myMount 이 때 마운트할 대상의 이름을 모르겠다면 ( 위 예제에서 /dev/sda1 과 같은 )fdisk -l 과 df -h 로 확인하자. 1234# 디스크 / 파티션 정보 출력

plink, pscp 로 SSH, SCP 사용하는 방법 (command-line, 자동화)

plink, pscp 어떻게 쓰면 좋을까?회사에서 일을 할 때 SSH 나 SCP 등을 사용할 일이 많은데, 보통 아래와 같은 조합으로 사용했다.SSH : TeraTerm, Putty, PowerShell파일 전송 : FileZilla, WinSCP 위 프로그램들은 잘 사용하고 있었지만, 업무 상 반복적인 작업 들이 있었고 이를 위해 매번 같은 버튼 누르고,