Tag Archives: MacOSX

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

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

GLib 메인루프와 애플 GCD의 libdispatch

GTK 메일링 리스트에 흥미있는 포스트가 있어서 정리해 봅니다.
스노우 레오파드 출시와 더불어 오픈 소스로 공개되면서 요즘 한창 이슈가 되고 있는 애플의 GCD(Grand Central Dispatch)의 일부인 libdispatch 라이브러리와 GLib 메인루프를 비교한 내용인데, 정리해 보면 다음과 같습니다.
libdispatch는 세 종류의 실행 큐를 제공하는데 다음과 같습니다.

메인 큐(main queue) : GLib의 메인 이벤트 루프와 동일
전역 큐(global queue) : 쓰레드풀(thread pool) 방식으로 동작하며 [...] Continue reading

Posted in Development | Tagged , , | Comments Off