반응형

참조사이트 - http://bugs.mysql.com/bug.php?id=9957

다음과 같은 경우

> select  round(87.875,2);

+------------+

| round(87.875,2)|

+------------+

| 87.87          |

+------------+

올바른 값은 87.88 입니다.


참조사이트 - http://www.soen.kr/lecture/ccpp/cpp1/8-1-4.htm

위의 경우처럼 반올림이 잘 안될 경우 floor함수를 사용하여 문제를 해결하였습니다.

round(87.875,2) => floor(87.875*100+0.5) / 100

위의 경우는 3째자리에서 2째자리로 반올림하기 때문에 100을 곱하고 0.5를 더한 뒤 floor한 후 100을 나누었습니다.

3자리일 경우 1000(10의 3승)을 곱하고 1000을 나누고 4자리일 경우 10000(10의 4승)을 곱하고 10000으로 나누시면 됩니다.



반응형
반응형

공개된 마이피플 봇 API 를 이용하여 숫자야구 게임을 만들어 보았습니다.

사람이 아닌 프로그램이 응답함으로써 컴퓨터와 서로 숫자야구 게임을 하실 수 있습니다.

마이피플 아이디 : ps.bot

홈페이지 : http://sdr1982.hosting.bizfree.kr/ps/

다음 이미지는 마이피플을 통해 직접 플레이한 게임 예시입니다.


반응형
반응형
출처 : http://linux.die.net/man/1/fg
프로세스(job)을 포어그라운드(foreground)로 보낸다.

문법
fg [PID]

설명
특정 프로세스(job)을 포어그라운드(foreground)로 보낸다. pid를 정하지 않았다면 사용된 마지막 프로세스(job)이 포어그라운드로 올려질 것이다.
원하는 PID는 주로 프로세스 expansion을 사용함으로서 찾아진다.

예시
job id 0을 포어그라운드로 놓기
fg %0 
반응형

'리눅스 shell' 카테고리의 다른 글

rsync  (0) 2015.02.17
왜 쉘 명령어가 \(백슬래시)로 시작하나요?  (0) 2014.07.08
iostat  (0) 2011.08.03
ntsysv  (0) 2011.07.12
dd  (0) 2011.07.11
반응형
출처 : http://linux.die.net/man/1/iostat
장치와 파티션에 대한 입출력 통계와 CPU(중앙처리장치)의 통계를 보고한다.

문법
iostat [ -c | -d ] [ -k | -m ] [ -t ] [ -V ] [ -x ] [ -n ] [ device [ ... ] | ALL ] [ -p [ device | ALL ] ] [ interval [ count ] ]

옵션
-c : -d와는 반대 개념으로 CPU 사용량만을 보고한다.
-d : -c와는 반대 개념으로 장치 사용량만을 보고한다.
-x : 확장된 스타일의 통계를 보여준다. 이는 -p와 -n의 반대개념으로 통계를 얻기 위해 마운트된 sysfs나 /proc/diskstats 파일이 필요하기 때문에 2.5 커널 이상에서 작동한다. 이 옵션은 /proc/partitions에서 확장된 스타일의 통계가 가능할 때만 오래된 커널(예 2.4)에서 작동할 수 있다.

사용예시
iostat -x 1
1초마다 확장된 스타일의 통계로 io stat을 찍는다. (시그널 없는 이상 무한루프)
iostat -x 1 6
1초마다 
확장된 스타일의 통계로 io stat을 6번 찍는다. 
반응형

'리눅스 shell' 카테고리의 다른 글

왜 쉘 명령어가 \(백슬래시)로 시작하나요?  (0) 2014.07.08
fg  (0) 2011.08.03
ntsysv  (0) 2011.07.12
dd  (0) 2011.07.11
xxd  (0) 2011.06.15
반응형
runlevels를 설정하는데 간단한 인터페이스를 제공한다.

설명
nysysv는 chkconfig를 통해 설정할 수 있는 runlevel 서비스를 설정하기 위한 간단한 인터페이스이다. 기본으로 현재 runlevel을 설정한다. 만약 사용자가 다른 runlevel을 설정하고 싶으면 이 level들은 --level 뒤에 레벨값들을 빈칸없이 나열함으로서 명령줄에서 정할 수 있다. 예를 들어 옵션 --level 016은 runlevel 0,1,6을 편집한다.
서비스는 수정된 어떤 runlevel에서든 시작될 수 있도록 설정된 runlevel에서 시작될 수 있다.
ntsysv 윈도우는 Cancel 버튼을 포함한다. 만약 --back옵션이 있으면 Back button이 대신 나타날 것이다.
리턴코드
ntsysv 는 성공시 0, 오류시 2, 사용자가 취소하거나 (back버튼을 누르면) 1이 리턴된다.
반응형

'리눅스 shell' 카테고리의 다른 글

fg  (0) 2011.08.03
iostat  (0) 2011.08.03
dd  (0) 2011.07.11
xxd  (0) 2011.06.15
du  (0) 2011.05.03
반응형
파일을 변환하고 복사한다.

# dd if=filename of=filename bs=n seek=n skip=n count=n
(if : Input File, of : Output File, bs : Block Size)

문법
dd [연산자]...
dd 옵션

설명
다음 연산자에 따라서 형태를 정하여 변환한 수 파일을 복사한다.
bs = BYTES
강제로 ibs=BYTES와 obs=BYTES로 맞춘다.
count=BLOCKS
BLOCKS 수만큼 입력 블록을 복사한다.
ibs=BYTES
한번에 읽을 바이트수
if=FILE
표준입력(stdin) 대신에 FILE로 부터 읽는다.
obs=BYTES
한번에 쓸 바이트 수
of=FILE
표준출력(stdout) 대신에 FILE로 쓴다.

사용예시
dd if=/dev/zero of=`pwd`/cnt bs=156012 count=1
파일 내용의 값이 모두 0인 156012바이트 파일로 cnt파일을 만든다. 


참고주소
http://linux.die.net/man/1/dd
http://cafe.daum.net/bscsolaris/LB4R/290?docid=19gS5|LB4R|290|20080611115027&q=dd%20if
 
 
반응형

'리눅스 shell' 카테고리의 다른 글

iostat  (0) 2011.08.03
ntsysv  (0) 2011.07.12
xxd  (0) 2011.06.15
du  (0) 2011.05.03
cut  (0) 2011.01.03
반응형
 1. On HKSE, in the event of a share consolidation or stock split, temporary stock codes will be listed.
홍콩거래소에서 액면 병합이나 분할시 임시 주식코드가 상장되며 parallel trading에서 임시 주식코드도 생성이 됩니다.
2. On ex-date(18AUG08) of share consolidation or stock split, mother stock will stop trading. Temporary stock will be listed. 
액면 병합 혹은 분할 권리 발생일에 원래주식(모 주식)은 거래를 멈추고 임시주식이 상장이 됩니다.
3. Temporary stock will trade for about 2 weeks. 
임시 주식은 약 2주간 거래됩니다.
4. After 2 weeks, the mother stock will be re-listed. This is when parallel trading occurs (i.e. both mother and temporary stocks can be traded). At this point in time, the ISIN for the mother stock will change. Also, the historical data for the 2 weeks will be copied from the temporary stock to the mother stock. 
2주후 원래주식(모주식)이 재상장됩니다. 이 상황이 parallel trading이 발생할 때 입니다. 이때 원래주식(모주식)의 ISIN 코드가 바뀝니다. 또한 이전 2주간 데이터가 임시 주식에서 원래주식(모주식)으로 복사됩니다.
5. Parallel trading will continue until the temporary stock is delisted, after which all trading reverts back to the mother stock.  
Parallel trading은 임시 주식이 상장폐지될때까지 계속되고 그 후 모든 거래가 원래주식(모주식)으로 돌아갑니다.

반응형

'금융' 카테고리의 다른 글

배당기준일 변경 회사 목록 - 지급일 버전  (2) 2024.01.29
배당기준일 변경 회사 목록  (2) 2023.12.18
증권사 이체수수료 정리  (0) 2022.05.07
전량체결주문  (0) 2010.03.24
반응형
hex 덤프를 만들거나 그 반대의 작업을 한다.
출처 :  http://linux.die.net/man/1/xxd

문법)
xxd [옵션] [[입력파일] [출력파일]]
xxd -r[evert] [옵션] [[입력파일] [출력파일]]

설명)
xxd는 주어진 파일이나 표준입력의 hex 덤프를 만든다.
또한 헥스 덤프를 원래의 바이너리 형태되 되돌릴 수도 있다.
게다가, 바이너리 파일 패칭을 수행하는되도 사용될 수 있다.
반응형

'리눅스 shell' 카테고리의 다른 글

ntsysv  (0) 2011.07.12
dd  (0) 2011.07.11
du  (0) 2011.05.03
cut  (0) 2011.01.03
xargs  (0) 2010.11.27
반응형
출처 : http://psjhello.egloos.com/100543
 

[SIGPIPE]
[SIGPIPE]

프로세스가 읽기가 안되는 파이프에 쓰려고 한다면, 커널로 부터 SIGPIPE 신호를 받게 된다. 이것은 두개 이상의 프로세스가 파이프라인에 포함되어 있을 때 필수적이다. 

참고로, 모든 시그널이 임의의 쓰레드로 전달되는 것은 아닙니다. 
SIGFPE (부동 소수점 연산 오류), SIGSEGV (메모리 접근 오류) 등과 같이 명백하게 시그널을 발생시킨 쓰레드가 정해져 있는 경우는 해당 쓰레드에게 시그널이 전달됩니다. 이런 시그널을 synchronous signal 이라고 하는데, SIGPIPE도 이 범주에 들지 않을까 합니다. 

클라이언트에서 소켓을 끊었다고 해서 서버에 SIGPIPE가 전달되는 것은 아닙니다. SIGPIPE는 상대방이 닫은 fd로 쓰기를 하려는 순간에 발생합니다. 

파이프 닫기
pclose()함수는 스트림을 닫은 후 리눅스의 함수인 wait4()를 호출하여
자식 프로세스 파이프의 다른 쪽의 프로세스가 종료될 때까지 기다리게 한다.
이렇게 함으로써 pclose() 함수는 자식 프로세스에게 성공/실패 상태를 
전달한다. 그 시간은 자식 프로세스가 종료되는 시점이다.
pclose()를 사용하지 않고 fclose()를 사용할 경우 좀피(zombie)프로세스가
생성
된다.

#include<stdio.h>
int pclose(FILE *stream);

부서진 파이프의 처리 
시그널(SIGPIPE)은 파이프가 "손상 됐다"는 것을 의미한다.
시그널은 리눅스 커널에 의해서 발생하는 비동기적(asynchronous)인 이벤트이다.


1. signal.h 파일을 포함한다.
2. 첫번째 파이프를 열기 전에 signal(SIGPIPE,SIG_IGN)을 호출한다. 이 호출은 리눅스 커널에게 만약 SIGPIPE 시그널이 발생하게 되면 무시하라고 말한다.

int main(it argc, char *argv) {
struct passwd *pw = 0; /* 비밀번호 정보 */
char cmd[256]; /* 명령 버퍼 */
FILE *p = 0; /* mailx 파이프 */

signal(SIGPIPE, SIG_IGN); /* SIGPIPE의 무시 */

이 함수는 SIGPIPE 시그널이 발생하게 되면 쓰기의 호출이 에러(EPIPE)를
반환 하거나 pclose() 함수가 에러를 반환하게 한다. 이것의 결과는
SIGPIPE가 발생하였을 때 프로그램 자체적으로 기본적인 동작을 수행하게
하는 것보다는 휠씬 좋은 일이다.


---------------------------------
> 제가 이번에 하는것은 IMB AIX 운영체제 하에서 돌아가는 파일전송 서버입니다. 

> 문제는 서버가 파일을 전송하고 클라이언트가 파일을 전송받다가 클라이언트가 
> 파일전송을 취소하고 중지하면 이상하게 서버도 같이 종료된다는 것입니다. 

> 그래서 send에러시 에러메세지가 나오게되 해보았는데 역시 에러 메세지가 
> 안나오고 바로 종료되더군요. 

> 제가 생각하기에는 런타임 에러같은데 혹시 저와 같은 경험을 하신분은 
> 없으신지.... 

> 참고로 쓰레드는 POSIX 쓰레드를 썻고 서버가 클라이언트의 접속요청을 
> 기다리다가 접속될때 파일전송 쓰레드가 구동 되도록 만들었습니다. 

> 아래부분이 문제의 send부분입니다. 리눅스에서는 아무문제가 발생하지 
않았고요. 

> if(send(client_socket, (const char *)send_buffer, sizeof(SEND_DATA), 0) 
> == -1) 
> { 
> printf("send error 1-1 "); 
> break; 
> } 


이상하네요. 
리눅스라 할지라도 데이터를 받던 클라이언트 쪽에서 접속을 끊으면 
서버쪽에 SIGPIPE
이 뜨게 됩니다. 
SIGPIPE에 대한 디폴트 핸들러는 프로세스를 종료시킵니다. 
따라서 이 해법SIGPIPE을 시그널 핸들러로 마스크 (SIG_IGN) 시키던지 send()의 마지막 플래그를 0으로 주지 말고 SIGPIPE을 무시하는 플래그로 셋팅을 하면 됩니다.
반응형
반응형
파일에 대해 사용량을 추정한다.
출처 :  http://linux.die.net/man/1/du

문법)
du [옵션] [파일]

설명)
디렉터리를 재귀적으로 검사하여 각 [파일]의  디스크 사용량을 종합한다.
-h --human-readable
사람이 읽을 수 있는 형식으로 크기를 표시한다. (예, 1K 234M 2G) 
반응형

'리눅스 shell' 카테고리의 다른 글

dd  (0) 2011.07.11
xxd  (0) 2011.06.15
cut  (0) 2011.01.03
xargs  (0) 2010.11.27
uname  (0) 2010.08.09

+ Recent posts