Tag Archives: Linux

GCC 미리 정의된 매크로 얻기

멀티플랫폼에서 동작하는 C/C++ 코드를 gcc를 이용해 컴파일할때 플랫폼이나 운영체제를 확인하는 방법 중 하나는 gcc 툴체인이 만들어질때 정의되는 매크로를 사용하는 것입니다. 그런데 이번에 MacOS X / iPhone 플랫폼에 기존 코드를 포팅하면서 이 방법을 이용하려 하는데, 너무 오래 전에 했던 작업이라 (역시나) 명령어를 기억할 수 없었습니다. 그래서 겨우 구글링해서 다시 알게된 내용을 기록해 둡니다.

$ gcc -E -dM [...] Continue reading

Posted in Development | Tagged , , , , , | Comments Off

리눅스 / 맥오에스에서 CPU 갯수 얻기

Linux / MacOS X 플랫폼에서 CPU 갯수를 얻어오는 함수입니다. 잊어버릴까봐 기록해 둡니다.

#include <stdio.h>
#ifdef __linux__
#include <sys/sysinfo.h>
#else
#ifdef __APPLE__
#include <sys/param.h>
#include <sys/sysctl.h>
#else
#error "Only Linux or OSX is supported!"
#endif /* __APPLE__ */
#endif /* __linux__ */
 
static int
get_cpu_nr (void)
{
#ifdef __linux__
return get_nprocs ();
#endif
#ifdef __APPLE__
int i = 0;
size_t s = sizeof (i);
if (sysctlbyname ("hw.ncpu", &i, &s, [...] Continue reading

Posted in Development | Tagged , , | Comments Off

리눅스 커널 2.6.32 릴리스

리눅스 커널 2.6.32 릴리스 소식을 들은지 한참 지난 지금에서야 정리해 봅니다. 모든 일이 그렇지만, 언제 이 버전의 커널을 프로젝트에 사용할지 모르는 일이므로 게으름부리지 말아야겠다는 생각이 다시 들고 있는 요즘입니다.
언제나 그렇듯이 제가 관심있는 내용만 정리합니다.
CFQ IO 스케쥴러 새 기능
리눅스 커널의 기본 IO 스케쥴러인 CFQ 스케쥴러에 새 기능이 추가되었습니다. 백그라운드 IO 작업이 다른 작업에 영향을 덜 끼치도록 [...] Continue reading

Posted in Development | Tagged , | Comments Off

tcpdump를 이용한 네트워크 사용량 측정하기

업무상 실제 패킷 사용량을 측정할 필요때문에 여러가지 도구를 찾던 중 마땅한 걸 찾지 못해 직접 측정한 방식을 정리해 봅니다. 물론 이보다 더 좋은 방법들이 당연히 있을테지만, tcpdump 프로그램만 겨우 사용할 수 있는 환경에서 측정하는 법을 정리한 문서를 찾지 못해 남겨둡니다.
우선 어떤 방식으로든 해당 장비에 tcpdump 프로그램을 설치합니다.
그리고 측정하려는 과정이나 단계가 시작하는 동시에 다음과 같이 tcpdump [...] Continue reading

Posted in Development | Tagged , , , | Comments Off

MacOS X의 한글 이름 파일을 리눅스에 복사하면 깨지는 현상 고치기

요즘 맥북과 리눅스를 같이 사용하면서 여러가지 방법으로 파일을 공유하고 있는데, SSH 등으로 직접 복사할때 파일 이름에 한글이 포함되어 있으면 깨지는 현상이 발생합니다. 리눅스에서 맥으로 복사할때는 문제가 없는데, 다시 맥에서 리눅스로 복사하면 파일 이름의 한글이 요상하게 보입니다. 동일한 UTF-8 환경이라 문제가 없을 줄 알았는데, 이 때문에 Unison 같은 프로그램도 오동작을 합니다.
대략 검색해보니 UTF-8을 인코딩할때 리눅스 계열의 [...] Continue reading

Posted in Development | Tagged , , | Comments Off