본문 바로가기

Bioinformatics/Technology23

[C/C++] 전체 표준 스트림에 대해서 버퍼링 제거하기 간혹 특정 프로그램의 로그를 즉시 즉시 출력해야할 필요가 있다. 우리는 이 때 stream.flush() 라던지 fflush(stdout) 류의 명령을 사용하고는 한다. 하지만, 여러번 이런 메서드를 호출하는 것은 상당히 번거롭다. 전역적으로 모든 표준 출력을 버퍼링하지 않도록 하려면 다음과 같이 하면 된다. setbuf(stdout, NULL); 이 후에 모든 표준 출력은 버퍼링 없이 즉시 즉시 출력된다. 2015. 5. 15.
[Linux] find 명령으로 특정 파일 찾아서 여러 명령 실행하기 간혹 우리는 하위 폴더에 있는 동일한 파일에 대해서 동일한 명령을 여러개 수행하고 싶을 때가 있다. 가령, 하위 폴더에 있는 모든 파일들 중에서 "improvement.out"이라는 파일명을 가진 파일의 경로명과 해당 파일의 내용을 출력하려면 어떻게 하면 될까? find . -name "improvement.out" -exec echo \{\} \; -exec cat \{\} \; > improvements.out 이렇게 하면 improvements.out이라는 파일에 해당 파일의 경로와 내용이 담기게 된다. 2013. 12. 4.
[Linux] 하위 폴더에서 파일명 한꺼번에 변경하기 파일명을 한꺼번에 변경하려면 다음과 같이 실행한다. find . -type f | grep -E "filename.txt" | xargs rename 's/filename\.txt$/changedname\.txt/' 이렇게 하면, 현재 경로 하위에 있는 모든 파일 중에 파일명이 "filename.txt"인 파일이 changedname.txt로 변경된다. 2013. 11. 14.
Eclipse CDT 선언문 명령줄에서 추가하기(공백 포함) 컴파일러 명령줄에서 선언문을 추가할 때 우리는 D 옵션을 이용한다. 다만, 문자열을 추가할 때, 공백이 있으면 문제가 된다. Eclipse CDT에서 동일한 일을 하려면, Project 이름에서 Properties -> C/C++ Build -> Settings -> Cross GCC Compiler -> Symbols또는 G++ Compiler -> Preprocessor로 가서 -D라고 되어 있는 곳에 다음과 같이 추가한다. 선언명='"내용"' 작은 따옴표로 큰 따옴표로 내용을 묶어서 shell에서 정상적으로 evaluation 되도록 하였다. 2013. 11. 12.