C의 가변인자

IRC의 #ubuntu 에서 어제밤에 놀다보니 sakuragi 님께서 가변인자 포인터에 대해 공부하고 계신 다고 하더군요. 가변인자 포인터가 무슨 뜻일까하고 혹시 … <- 요거요? 하고 여쭤봤더니 그게 맞는 모양이더라구요. ㅎㅎ
뭐 제가 알고있던 몇가지를 정리하자면 가변인자 포인터는 매크로 함수라는 것. 함수 호출시 인자의 포인터를 가리키게 해서 인자들을 순서대로 읽어온다는 것 정도로 알 수 있습니다. 디버거등으로 함수 호출 시의 메모리 안을 들여다보시면 쉽게 이해하실 수 있을 거예요.
저도 디버깅 함수를 만들때라던가 할 때 유용하게 써먹곤 하는데요. 뭐 vsprintf 를 사용해서 디버깅 메시지를 원하는 데로 포멧팅해서 원하는 곳에 출력한다던가 하는 정도로 사용합니다.
C99 에서는 전처리기로 처리할 수 있도록 지원하기도 하는데(이게 정확한 표현이 아닐수도 있습니다; 뭐라고 써야할지 정확히 생각나진 않네요.) 제가 사용했던 ARM Development Suite 1.2 에 들어가 있는 ARMCC 에서 다음과 같이 작성해서 쓴 적이 있습니다. 코드 일부를 옮기자면..

// 디버그 함수
#ifndef        _DEBUG_
#define        DBG_OUT(…)    ;
#else
#define        DBG_OUT(…)    at91_usart_printf(&USART0_DESC, __VA_ARGS__)
#endif

이런 식으로 선언해서 써주었었죠. at91_usart_printf 함수는 제가 구현해서 썼던 함수인데 함수 내부에서 vsprintf 를 사용해서 가변인자 형식을 받아 printf처럼 포멧팅해서 내부시리얼로 전송하는 함수였습니다. 디버깅 메시지를 시리얼로 표시하고 싶을 땐 그냥 DBG_OUT(“값: %d\r\n”, value); 형식으로 써주면 됐었죠. 저는 매우 게으르므로 디버깅시마다 같은 글자를 매번 타이핑하기가 귀찮았거든요. 줄여쓰면 좋잖아요? ㅎㅎㅎ

처음 C 배울 때 printf 함수 정의의 … 으로 처리된 저건 어떻게 쓰는 걸까 하고 생각했던 기억이 떠오르기도 하네요. 궁금하신 분들은 서적이나 MSDN 등을 한번 뒤져보시는 것도 좋습니다.
제가 그렇게 배웠거든요 :D(하수의 이야기;)

ubuntu.or.kr 의 배너

어젠가 ubuntu.or.kr 에 들어가보니 하단에 그놈 한국 사용자모임과 KLDP의 배너가 사이트 하단에 붙어있군요.
두 커뮤니티 모두 제가 좋아하는 곳입니다. 🙂
그러나 단지 궁금한 것은 누가 붙인 것일까 하는 것입니다.
ubuntu.or.kr에 설치된 위키인 모니위키에 대해 자세히 알지 못하기 때문에 일반 이용자가 저 배너를 붙일 수 있는지 알지 못하거든요;(아마 안되지 않을까 합니다만;)
사이트 관리자일까요? ㅎㅎㅎ
뭐 관련된 여러 커뮤니티들간에 유기적으로 연결된다면 더 좋은 시너지 효과를 얻을 수 있지 않을까 하는 아주아주 이상적이고 개인적인 생각입니다만;
현실적으로 어떨지는 사실 잘 모르겠습니다. 각 커뮤니티마다 특성도 다르고 주 사용자들도 다를 수 있고 특정 커뮤니티에 반감을 가진 사용자도 있을 수 있으니..(얼마전 KLDP에서 ubuntu.or.kr에 참여하고 계신 익명분의 글을 본적이 있습니다. 과연 반감(?)이라고 할 수 있을지는 의문입니다만;)

뭐 한걸음 더 생각을 옮기자면 커뮤니티에 배너를 추가하는 것에 대한 결정권은 누구에게 있는 걸까요? 사이트 관리자? 사이트 이용자? ubuntu.or.kr은 개인이 운영하는 개인 소유 커뮤니티 일까요?
ubuntu.or.kr 의 운영권에 (제가 생각하는 몇몇)민감한 분들이 계신 것 같아 든 생각입니다. 이 글을 보신다면 어떤 말씀을 하실지 모르겠습니다만, 전 현 운영상태정도면 괜찮다고 생각합니다. 현 운영자가 이전에 관리할 수 있는 분을 모집하기도 하였고요.(물론 지속적으로 관리할 수 있는 분을 찾지는 못했습니다만.. 지원하실 분 계시다면! 포럼에 한번 글을 올려보세요~ 😉 ) 왜 전 지원하지 않았었냐구요? 전 매우 게으르고 한가지에 빠지면 다른 것들에 신경을 잘 쓰지 못하므로 지속적인 관리라는 측면에서 불합격이거든요;

어쨌든간에! 제가 아주 좋아하는 우분투 커뮤니티와 기타 오픈소스 커뮤니티들이 잘잘 운영되었으면 좋겠습니다.
저도 할 수 있는 데까지 돕고싶어요! 🙂

libc6 패키지 업그레이드?

libc6 패키지가 며칠전에 2.4-1ubuntu2 에서 2.4-1ubuntu2.1로 업그레이드 된 듯 합니다.
근데 제 랩탑에서 업그레이드가 안되더라구요.
왜그러지~? 하고 봤더니 Exceptional 위치에 pthread20 라이브러리가 있다나요?
libpthread20 패키지를 완전 제거하고나니 업그레이드가 정상적으로 되더군요.
뭐.. 잘모르니.. 그냥 지우고 깔았지만;

찜찜하군요 ㅎㅎㅎㅎㅎㅎ;;;

PATH 설정

오늘 오랜만에 전에 근무했던 회사를 같이 다녔던 친구차를 타고 다녀왔습니다.
회사 이사 후 처음 찾아갔는데요. 모두들 전용선에 공인 IP를 하나씩 받아쓰더군요. 전에는 xDSL 류를 공유기로 연결해서 썼었는데 말이죠. 서버실도 변변치 않은 환기도 안되는 좁은 방안에서 하나 별도로 방이 하나 마련됐더군요. 제 후임이 아마 맡아서 잘 하겠죠~
회사에는 사고친(;;) 일이 많아서 가서 이사님과 제 사고뭉치들을 넘겨받은 분들을 뵙는데 참 죄송스러웠습니다;

회사에 있을 때 우/쿠분투를 쓰면서 다들 써보시라고 노래를 부르고 다녀서 동료 한분이 우/쿠분투교에 입문하시게 됐죠. ㅎㅎ;
오늘 갔을 때 PATH 설정을 어떻게 하시는 지 물어보시던데 뭐 한 김에 별거 아니지만 적어보려 합니다. ARM 툴체인의 경로를 PATH 에 추가하시려고 하시더군요.

방법은 간단합니다.
쿠분투를 쓰시고 있었는데 기본 쉘로 bash 이 지정되었기 때문에 ~/.bash_profile 이란 파일을 수정하였는데요. 중간에 보시면

if [ -d ~/bin ] ; then
   PATH=~/bin:”${PATH}”
fi

와 같은 문장이 있습니다.
아무튼 저 ~/bin: 과 “${PATH}” 사이에 추가하고 싶은 경로를 추가해주시면 될겁니다.(굳이 사이가 아니라도 상관없어요 😉 ) 구분자는 : 로 합니다.
제가 한데로라면

   PATH=~/bin:/usr/local/arm/bin:”${PATH}”

로 수정했었죠.

시스템 전체에 대해서 설정하시려면 아마 /etc/profile 파일을 수정하시면 될 것으로 예상합니다.

근데.. 이 간단한게 왜 쓰고나니 내용이 이만큼이나 된거죠?;

삼성 SW 멤버쉽 기술면접

삼성 SW 멤버쉽 기술면접을 보고 왔습니다.
1차 서류전형을 저번에 합격했기 때문이지요.
제가 지원한 수원 멤버쉽은 어제와 오늘, 양 일에 걸쳐서 기술 면접을 치뤘는데요.
면접 대기자 명단을 보니 하루에 26명(?) 정도 보더군요.
어제 면접을 본 친구도 26명 정도라고 했으니 전체 52명 정도군요. 이 중 몇 명이나 합격될지..

면접 자체는 4명의 면접관들 앞에서 프리젠테이션이나 시연을 하고 준비한 모든 것을 마치고 나면 면접관들이 질문을 시작합니다.
제가 소개했던 프로젝트는 회사에서 진행했던 2개의 프로젝트였는데요.
기술적으로 자세한 질문은 하시지는 않았습니다.(제 실력을 다 간파하신걸까요ㅜ)
면접 시에 많이 떨었고, 질문에 (제가 생각하기에) 잘못된 답변을 했다고 생각되서 별다른 기대는 않고 마음을 비우는 편이 좋을 것 같습니다.
제가 지원한 분야는 Application 분야였는데 프로젝트 하나는 임베디드 분야, 다른 하나는 MFC 애플리케이션이었는데 질문이 “두가지 커리어로 나눌 수 있는데 어떤 분야를 하고 싶느냐” 라고 던져졌습니다. 두 분야 양쪽다 하고 싶다고 대답한 제 답변에 “그래도 굳이 고르라면?” 이라고 재질문하셨는데 제가 지원한 분야가 Application 분야임을 감안할 때 Application 분야라고 했어야 하는데 “애플리케이션 분야는 해왔던 분야기 때문에 익숙하고 임베디드 분야가 더 학습해야 할 것이 많기 때문에 굳이 고르라면 임베디드 분야를 고르고 싶습니다.” 라고 대답하고 말았던 것이죠; 생각해보면 임베디드 분야는 저같은 초보쭉정이보다는 더 잘하는 다른 분들이 많았는데도 말입니다. 로봇팔같은걸 들고 온 분들도 있더군요; ㅎㅎ;;;

아무튼간에.. 그런 고로.. 별 가능성은 없어보입니다;

뭐 좋은 경험 했다 치죠!
되면 더 좋겠지만요! 🙂

p.s : 오랜만에 해묵은 정장과 분홍색 넥타이, 붉은 줄의 스프라이트 셔츠를 입고 다녀왔습니다만, 춥더군요; ㅎㅎㅎ!

블로그를 개설했습니다.

제목그대로 블로그를 개설했습니다.
둥지는 jachin 님이 제공해주신 서버에 틀었구요(jachin 님 감사해요!)

개인적인 관심사를 써나갈 예정입니다. 관심사라고 하면 지금 생각나는 것으로는 제일먼저 우분투, 개발 관련 자료, 제 일상(자기 일상을 관심있어하다니!) 등이 있겠네요.

블로그라는 것에 익숙하지도, 또 모르는 것도 많고..
게다가 저는 무지막지하게 게으르므로 이 블로그의 미래가 어떨지 불투명하지만!

뭐! 재미있게 놀아보죠~