반응형

컴퓨터활용/유닉스 64

일괄 거래 재거래

프로프레임에서 제공하는 pfmtcl 명령을 이용하여 거래를 재현할 수 있다. 하나이던 여러개 이던 거래 전문을 별도의 파일로 저장한 후에 다음 쉘을 이용하여 거래를 재현할 수 있다. 아래 쉘 프로그램은 text 로 저장된 거래 전문 파일을 한 line 씩 읽으면서 pfmtcl 거래를 하는 예제이다. 이 때 pfmtcl 은 거래 전문을 읽어서 IPPR로 거래를 날릴 수 있는 기능이 제공되어야 한다. (여기서는 pfmtcl -s 명령이라고 가정한다, 사이트 마다 옵션이 다름) 사용옵션은 pfmtcl 명령을 실행하면 사용법을 보여주기도 한다. 또는 매뉴얼을 참고한다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30..

AIX dbx 사용 core 분석

C 프로그램에서 늘 마주치는 것이 코어덤프인데 어떤 코드 때문에 발생했는 지 찾을 때 사용하는 것이 gdb 와 dbx 명령이다. AIX 에서는 dbx명령을 주로 사용한다. 이렇게 dbx 를 사용하여 추적하기 위하여서는 컴파일 할 때 -g 옵션을 줘서 컴파일을 해 줘야 한다.| 샘플프로그램 작성 샘플 프로그램인 sfw0023.c 에 아래와 같이 코어덤프가 발생할 코드를 기술한다. ( 324 라인 ) bug 라는 포인터에는 메모리가 할당되지 않았기 때문에 값을 write 하면 core 덤프가 발생하게된다. 12345678910111213 318 static long 319 a000_validation(sfw0023_ctx_t *ctx) 320 { 321 long rc = RC_NRM; 322 char *bu..

티베로 쿼리 실행 쉘 예제

티베로(Tibero) 쿼리를 실행하는 예제인데 오라클과 거의 유사하게 사용할 수 있네. 정말 오랫동안 고생 많이 해서 만들었으리라. 123456> vi test.sh out=`tbsql $CONNECT_INFO PHYSICAL_NAME-------------------------AA0002MS_VS0011 row selected.SQL> Disconnected.Colored by Color Scriptercs 이제 $out 결과를 잘 자르고 붙여서 지저분한거 다 지우고 내가원하는 값만 추출해서 사용하면 될 것이다.

유닉스 쉘에서 스페이스 잘리지 않게 유지하고 읽는 방법

유닉스 쉘에서 파일을 읽어서 처리하는 프로그램이 필요하였다. 솔직히 말하면 프로프레임에는 pfmtcl 이라는 테스트거래하는 프로그램이 있는데 이미지로그의 전문을 읽어서 연속으로 거래를 날리고자 했다. 그런데 전문 끝에는 스페이스가 있는데 쉘에서 이것을 읽으면 모두 날라가버리고 Trim되어 읽힌다는 것이다. 인터넷을 찾아보면 따옴표(") 로 감싸면 된다지만 이게 또 잘 안된다. 끝에 있는 스페이는 이미 읽을 때 지워버리고 읽어버리기 때문에 소용없는 일이었다. 123while read line; do echo "$line"done

gdb 사용법

흔히 유닉스 C 프로그램을 개발하는 프로젝트에서 코어덤프가 발생하게 되면 gdb 를 사용하게 된다. gdb 를 이용하면 프로그램이 어디를 어떻게 흘러갔는지 스택정보를 보여주게 되므로 코어가 발생된 위치를 추측하는데 도움이 된다. 대부분의 gdb 사용법은 인터넷에 나와 있는 것과 동일하다. 그런데 흔히 사용하는 명령은 bt (where) 정도 밖에 없다. 이런 bt 명령을 치기 위해서 file 코어파일 을 이용하여 코어가 발생한 실행 파일을 알아 내고 다시 gdb 실행파일 코어파일 을 하여 gdb 모드로 들어가서 bt 명령을 입력하게 된다. 이런 과정을 한방에 할 수 있는 쉘을 작성해 놓고 사용하면 편하다. 보통 gdb [프로그램명] [코어파일명] 이렇게 실행한다. 아래 쉘이름이 gdb.sh 라고 하면 g..

LIBPATH 환경 변수

Library 로드 오류 의뢰인이 다음과 같은 문제에 대하여 질문을 하였다. 그래서 몇개의 자료를 찾아 보고 나름 정리를 해 보기로 했다. Could not load program user: $> user Could not load program user: Dependent module libclntsh.a(shr.o) could not be loaded. Could not load module libclntsh.a(shr.o). System error: No such file or directory UNIX 에서 프로그램 실행시 위와 같은 오류메시지를 만났다면 libclntsh.a 라는 파일을 우선 점검해야 한다. 이 파일이 지정된 디렉토리에 실제로 존재하는 지 점검하고 존재한다면 READ권한이 있는지..

*.a 와 *.so 차이점

*.a 는 아카이브(Archive) 라는 뜻이다. 보통 우리가 object 파일들을 묶어서 library 로 제공하는 것과 동일하다. 이런 의미에서 *.so 도 동일한 성격이다. java 프로그램을 짜본 개발자라면 jar 파일을 연상하면 이해가 쉽다. C프로그램에 1차 컴파일하면 .o 파일이 생성된다. 소스 속에 main() 함수가 있다면 실행 바이너리로 컴파일 되겠지만 외부에서 호출할 수 있는 function 들로만 구성되어 있다면 .c 소스를 컴파일하면 .o 파일이 생성된다. 흡사 .java 를 컴파일 하면 .class 가 생성되는 것과 같다. java 는 원래 태생이 c 언어에서 시작되었기 때문에 그 구조가 비슷할 수 밖에 없다. 이제 본론으로 들어가서 *.a 와 *.so 의 차이점을 생각해 보면 ..

리눅스에서 kitchen 설치

ubuntu 14.04 버젼을 사용하고 있다. android custom ROM 을 관리하기 위해서 kitchen 을 설치하고자 한다. kitchen을 설치하기 위해서 아래 명령으로 최신 소스를 git 를 통하여 소스를 가져온다. git clone https://github.com/dsixda/Android-Kitchen stephen@stephen-LifeBook-S7110:~$ git clone https://github.com/dsixda/Android-Kitchen Cloning into 'Android-Kitchen'... remote: Counting objects: 5466, done. remote: Total 5466 (delta 0), reused 0 (delta 0) Receiving ..

ftp server install in Ubuntu Linux

ftp 서버를 설치하는 방법은 두 가지가 있다. 일반적인 vsftpd 서버가 있고 보안이 강화된 sftpd 를 설치하는 방법이 있다. vsftp는 설치가 용이하며 일반적으로 21번 port 로 접속하는 반면에 sftpd 는 22번 포트로 통신한다. 첫번째 방법 : vsftpd 설치할 경우 유닉스,리눅스의 커맨드라인에 다음과 같이 입력하면 간단하게 ftp서버를 설치할 수 있다. > sudo apt-get install vsftpd Reading package lists... DoneBuilding dependency tree Reading state information... DoneThe following NEW packages will be installed: vsftpd0 to upgrade, 1 t..

반응형