2011년 3월 27일 일요일

Java Inner Class

link: http://www.ezslookingaround.com/blog/tech/?no=1240

내부클래스 타입
(1) Static Class
(2) Member Class
(3) Local Class
(4) Anonymous Class

필요할 때마다 한번씩 참조해야 할 듯.
코딩하며 사용하지 않으면 확실히 이해하지 못할 거 같다.

C++ Static function

link: http://www.exforsys.com/tutorials/c-plus-plus/c-plus-plus-static-functions.html

Java에서와 같이 Object 생성 없이 Class name만으로 접근가능하다.
다만 Java에서는 다른 메소드 접근과 같이 아래와 같이 접근하는데에 반해,

(Java) className.methodName();

C++에서는 .(dot)이 아니라 ::(scope resolution operator)로 접근한다.

(C++) className::functionName();


(static 의 기본적인 의미는 프로그램 실행시 메모리에 로드될 때,
 딱 한번만 초기화되어 스택처럼 생성과 소멸을 반복하지 않는다는 것이다.)

2011년 3월 26일 토요일

Using Wireshark on Mac OS X

link: http://bar4mi.tistory.com/41

wireshark에서 packet를 잡아주려면
뭔가 권한 설정이 필요한가 보다.
readme manual에 안 나와있길래 찾아보니 금방 나오네.


$ sudo -i
# ls -dl /dev/bpf*
crw-------  1 root  wheel   23,   0  3 26 22:16 /dev/bpf0
crw-------  1 root  wheel   23,   1  3 26 22:16 /dev/bpf1
crw-------  1 root  wheel   23,   2  3 27  2011 /dev/bpf2
crw-------  1 root  wheel   23,   3  3 27  2011 /dev/bpf3
# chgrp admin /dev/bpf*
crw-------  1 root  admin   23,   0  3 26 22:16 /dev/bpf0
crw-------  1 root  admin   23,   1  3 26 22:16 /dev/bpf1
crw-------  1 root  admin   23,   2  3 27  2011 /dev/bpf2
crw-------  1 root  admin   23,   3  3 27  2011 /dev/bpf3
# chmod g+rw /dev/bpf*
crw-rw----  1 root  admin   23,   0  3 26 22:16 /dev/bpf0
crw-rw----  1 root  admin   23,   1  3 26 22:16 /dev/bpf1
crw-rw----  1 root  admin   23,   2  3 27  2011 /dev/bpf2
crw-rw----  1 root  admin   23,   3  3 27  2011 /dev/bpf3

2011년 3월 25일 금요일

바쁘다 바뻐...

6전공의 압박이란 게 새삼 느껴진다.
그래도 덜 놀게 되고, 더 재미를 느끼고 있으니
그것만으로도 참 신기하다.

복학 후 수업을 들으며 EKU 과제물 제출란에 숙제를 하나하나 쌓아가면서
[미제출]란이 [제출]란으로 바뀌는 모습이 얼마나 보람되었던지.
내가 이렇게 열심히 공부하고 있다니.. 하면서
그런 내 모습이 어색하기만 했던 그때가 벌써 1년이나 지났다.

취업도 살짝 걱정되고,
아직 전공도 할줄 아는게 많이 없고,
농구도 더 잘하고 싶지만
현재의 내 모습에 만족하고 감사할 줄도 알아야겠지.

그냥...
매번 전공 내용만 적다가 내 삶의 분위기를 좀 남겨보고자
이렇게 머리 속에 있는 생각을 꺼내본다.

2011년 3월 24일 목요일

Embeding Perl in C program (Win32, Visual C++)

link: http://www.codeguru.com/Cpp/misc/misc/interfacingtootherlanguages/article.php/c3811

필요한 파일(3)
1. interp.c
2. perlxsi.c
3. perl.lib    (perl5.12의 경우, perl512.lib)

1. project에 interp.c라는 파일 생성 후 다음을 입력해주고 저장
----------------------------------------------------------------------------
#include <EXTERN.h>
#include <perl.h>

static PerlInterpreter *my_perl;
int main(int argc, char **argv, char **env)
{
 PERL_SYS_INIT3(&argc, &argv, &env);
 my_perl = perl_alloc();
 perl_construct(my_perl);
 perl_parse(my_perl, NULL, argc, argv, NULL);
 PL_exit_flags |= PERL_EXIT_DESTRUCT_END;

 //Running Perl Actually
 perl_run(my_perl);

 perl_destruct(my_perl);
 perl_free(my_perl);
 PERL_SYS_TERM();
}
----------------------------------------------------------------------------


2. perlxsi.c 파일은,
    윈도우 cmd창에서 다음을 입력해주고
    현재 폴더에 생성되면 프로젝트 폴더에 추가

>  perl -MExtUtils::Embed -e xsinit
(을 입력하면 현재 위치에 perlxsi.c 파일을 생성해준다.)


 3. perl(win32)을 설치하면 보통 다음 디렉토리에 perl.lib이 위치함
    라이브러리 디렉토리를 추가해주고 추가종속성에도 입력한다.
    (속성변경 하는 김에 헤더파일의 디렉토리도 추가해준다.)

>  C:\Perl\lib\CORE\

컴파일 시 표준 include directory 지정하는 방법

link: http://www.joinc.co.kr/modules/moniwiki/wiki.php/Site/C/Documents/CprogramingForLinuxEnv/Ch12_module
source code에서
#include " "        <= 이건 소스 코드가 있는 폴더에서 찾는 것이라는 건 알았는데
#include < >        <= 이건 잘 몰랐다.

Standard Include Directory 라고 불리는 곳에서
헤더파일을 찾는 것이라는 걸 이제야 알았네..

그리고 또 한가지, 터미널에서 컴파일 시에 옵션을 주어
Include Directory를 지정해줄 수 있는데 다음과 같다.

$cc -L(지정하고싶은 디렉토리)
(예시)
$cc -L/usr/local/lib -o interp interp.c        //붙여쓰는 것에 조심!

perl.h 와 EXTERN.h 는 어디있는가?

(in Mac OS X)
/System/Library/Perl/5.10.0/darwin-thread-multi-2level/CORE/perl.h
/System/Library/Perl/5.10.0/darwin-thread-multi-2level/CORE/EXTERN.h

펄 코드 임베딩 한번 하기 엄청 힘드네...
언제쯤 테스트 한번 해볼 수 있을까?

------------------------------------------------
앗.. -_-
이렇게 찾는 방법이 있었군...

Execute this statement for a hint about where to find CORE:

$perl -MConfig -e 'print $Config{archlib}'