vim 편집기로 작업을 하다가 나도 모르게 컨트롤 Z를 눌러버리니...
바로 백그라운드 작업이 되어버렸다...
다시 vim 으로 편집할려고 하니 읽기전용이 되어 버렸네 ㅠ
kill 로 죽여도 죽은게 아닌듯한 느낌? ㅎ

그래서 명령어를 찾았다 ~~!!

bg : 백그라운드 작업 보기
fg : 백그라운드 작업으로 이동 (포워드그라운드 인가? ㅎ)


#include 
#include 
using namespace std;
int main()
{
int result, sum = 10, divisor=0;
result = sum / divisor;
cout << "Result = " << result << endl;
return 0;
}


위의 코드는 컴파일러가 제수가 0이 되는 에러를 잡지 못한다.
이럴때 assert()를 사용해서 false가 될경우 프로그램이 종료되게 할 수 있다.

#include 
#include 
using namespace std;
int main()
{
int result, sum = 10, divisor=0;
assert(divisor!=0);
result = sum / divisor;
cout << "Result = " << result << endl;
return 0;
}


Output
===================================================================================
t: t.cpp:8: int main(): Assertion `divisor!=0' failed.
Disallowed system call: SYS_kill
===================================================================================

assert() 코드 기능을 사용하고 싶지 않다면 #include 위에
#define NDEBUG 를 넣어주면 된다.


현재 캐릭터셋 확인하기

mysql> show variables like 'c%';
+--------------------------+----------------------------------------+
| Variable_name            | Value                                  |
+--------------------------+----------------------------------------+
| character_set_client     | latin1                                 |
| character_set_connection | latin1                                 |
| character_set_database   | latin1                                 |
| character_set_filesystem | binary                                 |
| character_set_results    | latin1                                 |
| character_set_server     | latin1                                 |
| character_set_system     | utf8                                   |
| character_sets_dir       | /usr/local/mysql/share/mysql/charsets/ |
| collation_connection     | latin1_swedish_ci                      |
| collation_database       | latin1_swedish_ci                      |
| collation_server         | latin1_swedish_ci                      |
| completion_type          | 0                                      |
| concurrent_insert        | 1                                      |
| connect_timeout          | 10                                     |
+--------------------------+----------------------------------------+
14 rows in set (0.00 sec)


mysql> status
--------------
mysql  Ver 14.12 Distrib 5.0.67, for redhat-linux-gnu (x86_64) using readline 5.1

Connection id:          73
Current database:
Current user:           root@localhost
SSL:                    Not in use
Current pager:          stdout
Using outfile:          ''
Using delimiter:        ;
Server version:         5.0.67-log Source distribution
Protocol version:       10
Connection:             Localhost via UNIX socket
Server characterset:    latin1
Db     characterset:    latin1
Client characterset:    latin1
Conn.  characterset:    latin1
UNIX socket:            /var/lib/mysql/mysql.sock
Uptime:                 15 hours 27 min 55 sec

Threads: 1  Questions: 791  Slow queries: 0  Opens: 39  Flush tables: 1  Open tables: 34  Queries per second avg: 0.014
--------------

이런식으로 뜬다.

변경하기
vi /etc/my.cnf

[client]
default-character-set=euckr

[mysqld]
default-character-set=euckr
init_connect=SET collation_connection=euckr_korean_ci
init_connect=SET NAMES euckr
character-set-server=euckr
collation-server=euckr_korean_ci

[mysqldump]
default-character-set=euckr

[mysql]
default-character-set=euckr

euckr 및 euckr_korean_ci 를 원하는 해당 캐릭터셋으로 바꾸어주면 된다.

추가 및 변경 후, MySQL 을 재시작 해주어야 적용된다.

service mysqld restart

회사에서 발표자료 - 템플릿

man rsync 의 USAGE 만 번역

rcp 사용법과 유사합니다. 반드시 대상과 목적지를 적어야 하며 둘 중 하나는 원격일 수 있습니다.
아마도 설명하기 가장 좋은 방법은 아래의 예를 드는 것일 겁니다.

rsync -t *.c foo:src/

이 예제는 *.c 패턴과 일치하는 모든 파일을 현재의 디렉토리로 부터 foo 머신으로 전송합니다.
원격 시스템에 이미 같은 파일이 존재한다면 rsync remote-update 프로토콜은 비교해서 같은 파일은 전송하지 않습니다. 좀 더 자세하게 다음 예제를 보죠.

rsync -avz foo:src/bar /data/tmp

이 방법은 재귀적으로 foo머신에 src/bar 디렉토리의 모든 파일을 로컬머신의 /data/tmp/bar 디렉토리로 전송합니다. 파일들은 "archive" 모드로 전송이 됩니다. 이것은 링크, 장치, 속성, 허가, 소유자, 기타. 등등이 전송에 보장이 됩니다. 추가적으로, 압축은 전송 데이터 크기를 줄여주는데 사용이 되어 집니다.

rsync -avz foo:src/bar/ /data/tmp

대상위치에 붙은 /  는 "이름으로 디렉토리를 복사"가 아닌 "이 디렉토리의 내용물을 복사"라는 의미로 사용됩니다.

rsync -av /src/goo /dest
rsync -av /src/foo/ /dest/foo

한마디로 위에 2개의 의미가 같다는 뜻입니다.

또한 명심할 것은, 호스트와 모듈 참조는 디렉토리 뒤에 / 표시를 필요로 하지 않습니다.
예를 들면, 아래방법 둘 모두 원격 디렉토리의 내용물을 "/dest"에 복사합니다.

rsync -av host: /dest
rsync -av host::module /dest

물론 로컬전용 모드로 rsync를 사용할 수도 있습니다. ':' 표시가 필요하지 않겠죠.
이경우는 마치 향상된 copy 명령어로 행동합니다.


번역이 개판이네 ㅠ,,,, 다듬어야지 ㅠ
2시간정도는 삽질한듯.
기본적으로 boost 소스를 다운 받아서 압축을 풀고
./configure 을 하고 make install를 실행하면
엄청난 시간이 걸리고 난후 설치가 된다.
/usr/local/include
/usr/local/lib
아무 설치경로 없을경우 위의 경로로 설치된다.
그리고 export 추가.

export CPLUS_INCLUDE_PATH=/usr/local/include/boost-1_37/
export LIBRARY_PATH=/usr/local/lib
export LD_LIBRARY_PATH=/usr/local/lib

.bash_profile 에 수정하면 재접속시 자동바뀜

이클립스에서 프로젝트 설정으로 path를 잡아주고.
#include도 잘 인식한다.

그런데 라이브러리를 인식하지 못하는것 ...

난 분명히 라이브러리 경로도 잡아줬는데 이게 왜 이럴까...

property 에서 c/c++ build에서 settings 에 보면,
gcc c++ linker 설정탭이 있다.
여기서 libraries에서 -I 에 개별적으로 추가를 해줬다.
에러메시지에서 본 system과 thread
boost_system-gcc41-mt
boost_thread-gcc41-mt
를 추가하니 해결.

(파일명은 libboost_system-gcc41-mt-1_37.a 등 비슷한 파일명이 많다.
그래서 전체를 포함할수 있게 mt까지만 끊어서 적어주니 해결되었다.한마디로 뽀록)
리눅스 바로가기 생성

ln -s 경로 바로가기이름
ex) ln -s /root/workspace/KF /KF
/의 KF라는 바로가기가 생성된다.
-s 는 sysblokc : make sysbolic links instead of hard links.

alias  명령어='원래명령어'
ex) alias cdKF='cd /root/workspace/KF'
cdKF라는 새로운 명령어가 만들어진다. 명령어 내용은 cd /root/workspace/KF

<embed src="http://api.bloggernews.media.daum.net/static/recombox1.swf?nid=1500434&m=1" quality="high" bgcolor="#ffffff" width="400" height="80" type="application/x-shockwave-flash"></embed>

+ Recent posts