Linux Server2011.09.27 17:58
__init
운영체제 초기화 과정에서만 사용된다는 것을 의미한다.
초기화에만 사용되므로 그 후에는 사용할 필요가 없다.
그래서 메모리에 남겨두면 낭비가 되므로 별도의 영역에 모아 두었다가 초기화가 끝나면 이 영역의 메모리를 해제한다.

__setup
지정된 parameter가 있을 경우 지정한 함수가 실행되도록 한다.
ex) __setup("root=", root_dev_setup)  // 'root=' parameter 가 있을 경우 root_dev_setup 함수가 실행됨
 
Posted by 초프(초보 프로그래머)
Linux Server2011.08.12 03:18
FIFO 로 채팅도 가능하지 않을까 라는 쓸때없는 생각에서 시작하여 만들게 되었습니다.
채팅이라고는 하나 네트워크 통신이 들어가지 않았습니다. 
여러 프로세스를 실행하여 통신하는 프로그램입니다.
실제로 쓸일은 절대! 없을 것이라고 생각합니다.

 
 위 이미지는 우분투에서 컴파일하여 실행한 모습입니다. 
정상 동작하나... 서버가 꺼져버리면 버그가 발생합니다;


 
대충 흐름도를 그림으로 그려 보았습니다.
아이패드로 처음 그려보는 거라....;;;;;
이번 연습으로 다음에는 더 잘 그릴 수 있겠지요..

연수원에서 새벽에 작업한 것이여서 문제가 많아요....
그래도 소스를 같이 올려 봅니다.

 
Posted by 초프(초보 프로그래머)
Linux Server2011.08.10 16:10
공유 라이브러리 소스 파일 : abc.c
컴파일할 실행 소스 파일 : main.c

libabc.so 공유 라이브러리 생성
#gcc -fPIC -c abc.c
#gcc -shared -Wl-soname,libabc.so.1 -o libabc.so.1 abc.o
#ln libabc.so.1 libabc.so


공유 라이브러리를 사용하여 컴파일 1
#gcc -c main.c
#gcc -o runfile main.o -labc -L.


공유 라이브러리를 사용하여 컴파일 2
#vim ~/.bashrc
         export LD_LIBRARY_PATH=
[libabc.so가 있는 경로]:$LD_LIBRARY_PATH
#source ~/.bashrc
#gcc -o runfile main.o -labc

실행
#./runfile

실행시 오류가 발생한다면 다음 과정을 실행하면 됩니다.
#vim /etc/ld.so.conf
          [libabc.so 가 있는 경로] 추가
#ldconfig
#./runfile


 
Posted by 초프(초보 프로그래머)
Linux Server2011.08.10 15:53
.bashrc를 수정하면 다시 로그인해야 적용됩니다.

터미널을 종료후 다시 실행하면 적용됩니다.


하지만

source ~/.bashrc

를 실행하게 되면 터미널 종료 없이 바로 적용됩니다. 
Posted by 초프(초보 프로그래머)
Programming/PHP2011.05.18 23:36
10년 이상 php를 조금씩 했지만 pear를 처음 설치해 봤다; 반성해야겠다;

wget pear.php.net/go-pear

라고 입력하면 설치 스크립트를 내려받고 go-pear 라는 파일이 생긴다.
go-pear 파일을 서버가 웹서버가 돌아가는 폴더 안에 넣고 실행하자.
실행하기 전에 파일 확장자를 붙여 줘야 한다.

mv go-pear go-pear.php

웹브라우저에서 다음과 같이 접속하자
http://localhost/go-pear.php

next
install 을 눌러주면 설치가 끝난다.




lynx 가 설치되어 있는 경우라면

lynx -source http://pear.php.net/go-pear | php

이와 같은 명령어를 사용해도 된다. 
Posted by 초프(초보 프로그래머)
TAG Linux, Lynx, Pear, php
Linux Server2010.11.25 21:19
크로스 컴파일시 오류

 arm-linux-gcc -o test test.c -lbluetooth
 /usr/local/arm-linux/lib/gcc-lib/arm-linux/3.2.1/../../../../arm-linux/bin/ld: cannot find -lbluetooth
collect2: ld returned 1 exit status

라이브러리를 못찾는 문제입니다.

다음과 같이 라이브러리를 지정하면 컴파일이 가능합니다.

arm-linux-gcc -o test test.c -L/usr/local/arm-linux/lib -lbluetooth 


Posted by 초프(초보 프로그래머)
Linux Server2010.11.25 20:26
BlueZ 라이브러리를 이용하여 프로그래밍을 할때

컴파일을 하였는데 

 /tmp/ccO6DVsB.o(.text+0x102): In function `main':
: undefined reference to `ba2str'
collect2: ld returned 1 exit status

이와 같은 오류가 뜬다면 옵션을 주지 않아서 입니다.

 gcc -o test test.c -lbluetooth

-lbluetooth 를 붙여주면 오류없이 컴파일 됩니다.

gcc 뿐만 아니라 g++ 도 같은 옵션이 존재하는 것 같습니다.
Posted by 초프(초보 프로그래머)