'U&L Developer˚ε♡з。'에 해당되는 글 233건

  1. 2011.05.08 DJGPP 설정 1
  2. 2011.02.12 sleep(3)
  3. 2011.02.08 du – (디렉토리, 사용자별 단위의 디스크 사용량 점검)
  4. 2011.02.05 df - (파일시스템 단위의 디스크 남은 사용량 출력)
  5. 2010.11.02 ANSI Escape(ESC) character
  6. 2010.10.28 쉘내부 명령어
  7. 2010.09.14 strdup(3)
  8. 2010.09.11 strstr(3) 1
2011. 5. 8. 01:01
1. 소개

DJGPP Unix에서 사용하는 gcc DOS용으로 포팅한 것이다.

GCC Free Software이면서 가장 강력한 컴파일러라고 할수 있다.

   

2. 다운로드
  1. 우선 DJGPP를 다음 사이트에서 다운로드 하자.
    http://www.delorie.com/djgpp  
    방문한다.

       

  2. Zip Picker를 선택한다.(사용자가 다운로드 하는 것을 도와준다.)

       

  3. 이후 사용자가 선택해야 할 여러가지 사항들이 나오게 된다. (다른 추가적인 선택은 선택사항이다)

       

  4. 위에서 선택한 파일들에 대한 결과가 다운로드 링크 된다.

       

  5. 기본적으로 아래와 같이 다운을 받는다.

    unzip32.exe to unzip the zip files

    v2/djdev203.zip DJGPP Basic Development Kit
    v2gnu/bnu219b.zip Basic assembler, linker

    v2gnu/gcc452b.zip Basic GCC compiler

    v2gnu/gdb611b.zip GNU debugger

[참조] 위에서 v2gnu/bnu219b.zip(Basic assembler, linker) 파일을 같이 설치를 안 해주면
아래와 같은 에러 메시지 발생하므로 (5)번에 파일 항목들은 기본적으로 다운 받아주자.

Problem: When compiling a simple C program, gcc compiler reports:
C:\gcc\projects\pci>gcc test.c -o test.exe
gcc.exe: Internal error: (null) (program as)
Please submit a full bug report.
See <URL:http://gcc.gnu.org/bugs.html>; for instructions.

   

3. 설치하기

  1. [c:\DJGPP] 폴더를 생성하여 다운로드 받은 압축 파일들을 모아준다.

       

  2. 압축파일은 다운 받은 unzip32를 사용해서 아래와 같이 풀어주면 된다.

C:\DJGPP>unzip32.exe *.zip

   

  1. 마지막으로 환경변수를 다음과 같이 등록해준다.
  • ( [내컴퓨터]-[마우스오른쪽]-[속성]-[고급]-[환경변수]-[시스템변수(s)]-[새로만들기] )

  • ( [내컴퓨터]-[마우스오른쪽]-[속성]-[고급]-[환경변수]-[시스템변수(s)]-[Path]-[편집] )

[참조] djgpp.env 설정파일이 없을 경우 : 아래의 파일을 같이 꼭 설치(압축해제)해준다.

v2/djdev203.zip DJGPP Basic Development Kit

   

Posted by devanix
2011. 2. 12. 08:38

NAME


  • sleep – Sleep for the specified number of seconds


SYNOPSIS


#include <unistd.h>

unsigned int sleep(unsigned int seconds);


DESCRIPTION


  • sleep()를 이용하면 현재 동작중인 프로세스를 지정한 초(seconds)만큼 정지 시킨다.
  • sleep()는 SIGALRM을 이용해서 구현되 되었으므로 alarm()와 섞어서 쓰는건 좋지 않다.
  • 하나 이상의 alarm을 사용하게 될경우 먼저 설정되었던 alarm은 무효화 되어 버리기 때문이다.


RETURN VALUE


성공 0, 실패 -1반환, 적당한 errno값 설정.


EXAMPLE


지정한 n(초)가 경과될 때마다 소리를 낸다. (beeper.c)

#include <stdio.h>

#include <stdlib.h>

#include <unistd.h>

 

int main(int argc, char *argv[]) {

    int sleeptime;

 

    if (argc != 2) {

        fprintf(stderr, "Usage:%s n\n", argv[0]);

        return 1;

    }

    sleeptime = atoi(argv[1]);

    fprintf(stderr, "Sleep time is %d\n", sleeptime);

    for ( ; ; ) {

        sleep(sleeptime);

        printf("\007");

        fflush(stdout);

    }

}

 

'API 및 라이브러리 > C 라이브러리 함수' 카테고리의 다른 글

의사 난수 생성(pseudo-random number) : srand(), rand()  (1) 2011.10.08
strdup(3)  (0) 2010.09.14
strstr(3)  (1) 2010.09.11
system(3)  (0) 2009.12.19
getusershell(3)  (0) 2009.12.19
Posted by devanix
2011. 2. 8. 08:13

NAME


du – estimate file space usage


SYNOPSIS


du [OPTION]... [FILE]...

du [OPTION]... --files0-from=F


DESCRIPTION


  • du는 "Disk Usage"의 약어로서 파일 및 디렉토리의 사용량을 확인하는 명령어.
  • df가 파티션(파일시스템)단위의 디스크사용량을 점검한다면,
    du는 특정 디렉토리 또는 파일을 단위로하여 그 용량을 확인하는 명령어.
  • 즉, 현재디렉토리의 용량뿐 아니라 현재 디렉토리의 서브디렉토리 및 파일들가지 모두 함께 사용량을 계산하여 표시. (기본 용량표시단위는 Kbyte)
  • 특정 디렉토리 확인( "du [디렉토리명]" )

devanix@xubuntu10:~$ du /etc

4 /etc/dbus-1/event.d

140 /etc/dbus-1/system.d

4 /etc/dbus-1/session.d

160 /etc/dbus-1

…..

- /etc 디렉토리에 존재하는 모든 파일들(서브디렉토리내의 파일들까지 포함)의 용량과 함께 파일명을 표시.

- 용량단위는 kbyte 단위.

- 수많은 파일들이 존재하는 디렉토리는 한 화면에 모두 표시.


OPTION


  • -s, --summarize (display only a total for each argument)
    • 특정 디렉토리의 전체 사용량 점검.
    • 지정된 디렉토리 내에 존재하는 모든 파일과 서브디렉토리들의 용량을 모두 합친 전체용량(summary)을 표시.

root@xubuntu10:~# du -s /etc

13116 /etc

- /etc/가 사용하는 전체 용량은 13116kbyte.

 

  • -h, --human-readable (print sizes in human readable format (e.g., 1K 234M 2G))
    • K, M, G단위는 용량의 크기에 따라서 적당하게 표시.(사람이 좀 더 읽기 편하게 표시)

root@xubuntu10:~# du -h /etc

4.0K /etc/dbus-1/event.d

140K /etc/dbus-1/system.d

4.0K /etc/dbus-1/session.d

160K /etc/dbus-1

…..

- "-sh"옵션을 사용하여 전체용량을 모두 합해서 용량단위까지 붙여서 출력.

 

  • -a, --all (write counts for all files, not just directories)
    • 현재 디렉토리 아래의 모든 파일과 디렉토리 사용 정보를 보여준다.

devanix@xubuntu10:/data/test$ du

8 .

devanix@xubuntu10:/data/test$ du -a

0 ./bbb

0 ./ddd

0 ./aa

0 ./ccc

4 ./aaa

8 .

  • -B, --block-size=SIZE (use SIZE-byte blocks)
    • 지정한 size를 블록 사이즈로 사용한다.
  • -b, --bytes (equivalent to `--apparent-size --block-size=1')
    • 바이트(bytes) 크기로 보여준다.
  • -k (like --block-size=1K)
    • 보여지는 단위를 1Kbyte형태로 보여준다.
  • -c, --total (produce a grand total)
    • 모든 파일의 디스크 사용정보를 보여주고 합계를 보여준다.
  • -D, --dereference-args (dereference only symlinks that are listed on the command line)
    • 계산 되는 파일이나 , 경로가 심볼릭 링크이면 그 원본의 값을 보여준다.
  • -H (equivalent to --dereference-args (-D) )
    • 1024단위의 비율로 보여준다.
  • -l, --count-links (count sizes many times if hard linked)
    • 만약 계산되는 파일 중에 하드 링크되어 있는 파일이 있다면 , 그것을 그대로 계산한다.
  • -L, --dereference (dereference all symbolic links)
    • 모든 심볼릭 링크를 따른다.
  • -S, --separate-dirs (do not include size of subdirectories)
    • 디렉토리의 총 사용량을 보여줄 때, 하위 디렉토리의 사용량은 제외한다.
  • -x, --one-file-system (skip directories on different file systems)
    • 현재 파일 시스템의 파일 사용량만을 보여준다.
  • -X, --exclude-from=FILE (exclude files that match any pattern in FILE)
    • 지정한 파일과 일치하는것은 제외한다.

 

'Linux > General Commands' 카테고리의 다른 글

df - (파일시스템 단위의 디스크 남은 사용량 출력)  (0) 2011.02.05
yes(1)  (0) 2010.05.29
tee(1)  (0) 2010.05.29
wc(1)  (0) 2009.04.14
echo(1)  (0) 2009.04.13
Posted by devanix
2011. 2. 5. 17:41

NAME


df – report file system disk space usage


SYSNOPSIS


df [OPTION]... [FILE]...

which : /bin/df


DESCRIPTION


  • df는 "Disk Free"의 약어로 디스크사용량을 출력.
    • 현재 사용중인 파일시스템의 전체용량, 사용한 용량, 사용가능한 용량, 사용 율, 마운트정보 확인.
    • df명령어는 /etc/fstab 파일에서 파일시스템정보를 참조하고, /etc/mtab에서 마운트된 정보를 참조.
    • byte, Kbyte, Mbyte, Gbyte의 용량단위로 전체 파일시스템의 디스크사용량을 한눈에 확인.
      (기본표시 용량단위는 KB(Kilo Byte)
    • 서버 장애의 주된 원인이 될 수 있는 File System Full(파일시스템용량이 꽉 참)을 방지하기 위하여 시스템관리자의 주된 없무 중 한가지가 주기적인 파일시스템 사용량 점검.


OPTION


  • 기본 사용 ("df", 현재 서버의 디스크사용량을 파티션별로 확인)

devanix@xubuntu10:~$ df

Filesystem  1K-blocks    Used   Available  Use%  Mounted on

/dev/sdb1         76896288    2721732    70268356        4%     /

none                    507152         256       506896         1%     /dev

none                    512748         664       512084         1%    /dev/shm

none                    512748          92       512656          1%   /var/run

none                    512748           0       512748          0%    /var/lock

none                 76896288  2721732    70268356          4%    /var/lib/ureadahead/debugfs

첫번째 필드(Filesystem)

- 파일시스템 장치명(device name).

두번째 필드(1K-blocks)

- 파일시스템에 할당된 용량.

세번째 필드(Used)

- 사용된 용량.

네번째 필드(Available)

- 사용 가능한(사용되지 않고 남아 있는) 용량.

다섯째 필드(Use%)

- 사용 율(즉, 전체 할당된 용량에 대한 사용된 용량의 백분율)

여섯째 필드(Mounted on)

- 각 파일시스템이 마운트된 마운트포인트(위치, 디렉토리)를 표시

 

  • -a, --all (include dummy file systems), 모든 파일시스템을 대상으로 점검.
    • 크기가 0인 모든 파일시스템에 대한 사용량을 확인.(원래 크기가 0인 파일시스템은 보여주지 않는다)
  • -i, --inodes (list inode information instead of block usage), inode 단위로 사용량 정보를 표시.
    • 블록(block)대신에 inoce 단위로 사용량 정보를 표시.
  • -k (like --block-size=1K), 용량을 Kbyte 단위로 표시 (Default)
  • -m (like --block-size=1M), 용량을 Mbyte 단위로 표시.
  • -h, --human-readable (print sizes in human readable format (e.g., 1K 234M 2G))
    • 사람이 보기 쉽도록 최적의 용량단위를 알아서 표시.

devanix@xubuntu10:~$ df -h

Filesystem   Size   Used   Avail   Use%   Mounted on

/dev/sdb1         74G     2.6G       68G        4%     /

none               496M      256K    496M        1%    /dev

none               501M      664K    501M        1%    /dev/shm

none               501M       92K     501M        1%    /var/run

none               501M          0      501M        0%    /var/lock

none                  74G     2.6G       68G        4%    /var/lib/ureadahead/debugfs

 

  • -T, --print-type (print file system type), 파일시스템의 종류와 함께 표시.

devanix@xubuntu10:~$ df -T

Filesystem    Type   1K-blocks    Used   Available   Use%   Mounted on

/dev/sdb1       ext3         76896288     2721740      70268348         4%     /

none        devtmpfs           507152           256         506896        1%     /dev

none             tmpfs            512748           664         512084        1%     /dev/shm

none             tmpfs            512748            92         512656        1%     /var/run

none             tmpfs            512748             0         512748         0%    /var/lock

none         debugfs         76896288    2721740      70268348         4%   /var/lib/ureadahead/debugfs

 

  • -t, --type=TYPE (limit listing to file systems of type TYPE), 특정 파일시스템의 종류만을 대상으로 출력.
    • -t 옵션 뒤에 파일시스템의 종류명을 지정하면 그 파일시스템의 종류를 가진 파일시스템에 대해서만 사용량을 표시. (예 : "df –t ext3")

devanix@xubuntu10:~$ df -t ext3

Filesystem   1K-blocks   Used    Available   Use%    Mounted on

/dev/sdb1           76896288  2721740       70268348         4%       /

devanix@xubuntu10:~$ df -t ext4

Filesystem   1K-blocks   Used    Available   Use%    Mounted on

/dev/sdb2           36510204    739492       33915992         3%      /data

  • -x, --exclude-type=TYPE (limit listing to file systems not of type TYPE), 특정 파일시스템을 제외하고 출력.
    • -t 옵션과는 반대의 경우로서 특정 파일시스템 타입을 제외한 파일시스템에 대해서만 출력.
      (예 : "df –x ext3")

 

  • --total (produce a grand total), 총합계를 출력.

devanix@xubuntu10:~$ df --total

total   192348176   6183984   176497072    4%

 

'Linux > General Commands' 카테고리의 다른 글

du – (디렉토리, 사용자별 단위의 디스크 사용량 점검)  (0) 2011.02.08
yes(1)  (0) 2010.05.29
tee(1)  (0) 2010.05.29
wc(1)  (0) 2009.04.14
echo(1)  (0) 2009.04.13
Posted by devanix
2010. 11. 2. 02:09
  • escape character란?
    • 사용자가 입력한 명령어가 시스템에 전달된다는 것은 곧 일반 문자가 전달된다는 것이다.
    • 이러한 이유 때문에 입력한 문자 외에 시스템을 제어하기 위한 별도의 문자가 필요하게 되는데 이러한 문자들을 이스케이프 문자라고 함.
    • 예) 화면을 제어하기 위한 커서 이동, 화면의 일부 또는 전체를 지우기, 문자의 출력 속성, 화면의 스크롤, 색상 출력 등
    • escape 문자와 함께 "[" 문자 뒤에 적절한 제어 명령어를 전달.
    • 이렇게 제어된 문자들을 통칭하여 "escape character"라고 함.
  • escape(ESC) 사용 형식
    • echo ESC[(숫자)(문자)
    • ESC는 명령행(Command Line)상에서는 직접 <ESC> 키를 입력하여 사용할 수 있고,
      <CTRL + V>를 입력하고 <ESC> 키를 치거나 <CTRL + V><CTRL + [> 키를 입력.

 

  • escape(ESC)문자 code

키 종류

설명

ESCc

화면을 지우고 커서를 1행 1열로 이동

ESC[nA

커서를 현 위치에서 위로 n칸 이동.

ESC[nB

커서를 현 위치에서 아래로 n칸 이동.

ESC[nC

커서를 현 위치에서 오른쪽으로 n칸 이동.

ESC[nD

커서를 현 위치에서 왼쪽으로 n칸 이동.

ESC[n;mH or

ESC[n;mf

커서를 m열 n행으로 이동.

ESC[nJ

n=0 이면 현 위치에서 화면의 끝까지 삭제.

n=1 이면 화면의 처음에서 현 위치까지 삭제.

n=2 이면 화면 전체를 삭제.

ESC[nK

n=0 이면 현재 커서의 위치에서 행의 끝까지 삭제.

n=1 이면 현재 커서에서부터 행의 처음까지 삭제.

n=2 이면 현재 커서가 있는 행을 모두 삭제.

ESC[nL

n개 행을 현재 커서 위치에 삽입.

ESC[nM

현재 커서 위치에서부터 n개 행을 삭제.

ESC[nX

현재 커서 위치에서부터 n개 문자를 삭제.

ESC[nP

현재 커서 위치에서 행의 처음부터 n개 문자를 삭제.

ESC[nm

화면의 색 지정, 여러가지 색을 지정할 때는 <;>를 사용하여 구분.

ESC[x;yr

가로는 x열, 세로는 y행만큼의 화면 크기를 설정.

  • ESC를 이용한 글자 색 지정

글자의 속성

글자의 색

배경색

00

없음

30

검은색

40

검정색

01

굵게

31

빨간색

41

빨간색

04

밑줄

32

녹색

42

녹색

05

깜빡거림

33

노랑색

43

노랑색

07

반전

34

파랑색

44

파랑색

08

숨김

35

자홍색

45

자홍색

   

36

청록색

46

청녹색

   

37

하얀색

47

하얀색

 
bash 에서 색상 출력 : echo -e "\\033[01;31m<color>\\033[0m" 
c에서 색상 출력 : printf (" %c[1;31m<color>%c[0m\n",27 , 27); 

'Linux > ShellScript' 카테고리의 다른 글

쉘내부 명령어  (0) 2010.10.28
[script]directory tree로 보여주기  (0) 2010.05.29
[Script] 파일 점검 프로그램  (0) 2010.05.23
[if연산] test 관련 연산자  (0) 2010.05.23
쉘(Shell) 환경  (0) 2010.05.16
Posted by devanix
2010. 10. 28. 22:29

명령어

설명

:

항상 명령어의 실행값은 참을 반환하며 아무 액션도 발생하지 않는다.

참값을 반환하기 떄문에 "while : ;do"과 같은 형태로 루프문에서 무한 루프를 설정하고자 할 때 사용.

.

지정한 파일로부터 읽거나 실행

alias

명령어에 대한 앨리어스 지정

bg

특정한 프로세스를 백그라운드로 실행

bind

readline에서의 키 또는 함수, 매크로에 키 순서를 결합 하고자 할 때 사용

break

루프문에서 루프문을 탈출하고자 할 때 사용

builtin

내부 명령어나 함수를 실행할 때 사용할 수 있으며 스크립트에서 외부 명령어와 내부 명령어가 같은 이름으로 존재할 떄 내부 명령어만 실행한다.

만일 지정한 내부 명령어나 함수가 존재하지 않는다면 에러를 출력.

cd

디렉토리 이동 명령어

command

내부 명령어 및 외부 명령어를 실행하며 세부적인 정보를 출력할 수 있는 명령어

continue

루프문에서 루프문의 처음으로 되돌아 갈 때 사용하는 명령어

declare

변수를 선언하거나 속성을 부여하고자 할 때 사용하는 명령어

dirs

현재 저장되어 있는 디렉토리 리스트 목록을 출력

disown

쉘에서 활성화 되어 있는 작업 테이블에서 특정한 작업 목록을 삭제

echo

입력된 문자의 출력

enable

내부 명령어의 활성화 및 비활성화

eval

설정되어 있는 인자를 명령어로 변환

exec

현재 프로세스를 치환

exit

종료

export

지정한 환경변수를 하위 프로세스까지 전달

fc

히스토리 편집 및 리스트 출력

fg

포그라운드에서 실행

getopts

명령어의 옵션을 분리하는 명령어

hash

입력한 명령어에 대한 경로를 해쉬 테이블에 저장하여 명령어를 다시 호출할 때 시스템 패스 $PATH에서 검색하지 않고 해쉬 테이블에서 검색

help

내부 명령어의 도움말 출력

history

이전에 사용한 명령어의 출력

jobs

현재 실행중인 작업 목록 출력

kill

현재 실행중인 프로세스 종료 및 재시작

let

산술 논리 계산

local

로컬 변수의 선언 및 호출

logout

로그 아웃

popd

저장된 디렉토리 스택으로부터 제거

printf

정형화된 데이터의 출력

pushd

디렉토리 스택으로 저장

pwd

현재 디렉토리 출력

read

프롬프트로부터 데이터를 입력

readonly

프롬프트로부터 읽기 전용의 데이터 입력

return

호출한 부모 프로세스로 반환되는 값

set

변수값 설정

shift

위치매개변수의 이동

shopt

쉘 옵션의 출력 및 설정

source

지정한 파일로부터 읽거나 실행

suspend

특정한 신호를 입력받을 때까지 일시 중지

test

조건식을 평가할 때

times

프로세스가 사용한 총 시간을 출력

trap

명령어 실행도중 특정한 신호가 입력되었을 때의 처리

type

지정한 명령어가 내부 명령어인지 외부 명령어인지를 출력

typeset

declare와 같은 의미

ulimit

시스템 자원을 제한

unmask

파일 및 디렉토리에 대한 생성 마스크 설정

unalias

앨리어스 해제

unset

함수 및 변수의 초기화

wait

하위 프로세스가 종료될 때까지 대기

 

'Linux > ShellScript' 카테고리의 다른 글

ANSI Escape(ESC) character  (0) 2010.11.02
[script]directory tree로 보여주기  (0) 2010.05.29
[Script] 파일 점검 프로그램  (0) 2010.05.23
[if연산] test 관련 연산자  (0) 2010.05.23
쉘(Shell) 환경  (0) 2010.05.16
Posted by devanix
2010. 9. 14. 15:18

NAME


 strdup - 문자열 복사하기.

 

SYNOPSIS


 #include <string.h>

 char *strdup(const char *s);

 

DESCRIPTION


strdup() 함수는 문자역 s 복사한 새로운 문자열에 대한 포인터를 반환한다.

 새로운 문자열에 대한 메모리는 malloc(3)으로 할당되며 free(3) 해제 된다.

 

RETURN VALUE


 strdup() 함수는 복사된 문자열에 대한 포인터를 반환하며,

 이용할수 있는 메모리가 충분하지 않으면 NULL 반환한다.

 

ERRORS


 ENOMEM 복사할 문자열을 할당하기 위해 이용할수 있는 메모리가 충분하지 않다.

 

SEE ALSO


 calloc(3), malloc(3), realloc(3), free(3)

 

EXAMPLE


#include <stdio.h>

#include <string.h>

 

int main(void) {

    char *dup;

    char *string = "twin string";

    dup = strdup(string);

    printf("%s\n", dup);

    free(dup);

    return 0;

}

'API 및 라이브러리 > C 라이브러리 함수' 카테고리의 다른 글

의사 난수 생성(pseudo-random number) : srand(), rand()  (1) 2011.10.08
sleep(3)  (0) 2011.02.12
strstr(3)  (1) 2010.09.11
system(3)  (0) 2009.12.19
getusershell(3)  (0) 2009.12.19
Posted by devanix
2010. 9. 11. 04:30

NAME

    strstr – locate a substring

 

SYNOPSIS

#include <string.h>

char* strstr(const char *haystack, const char *needle);

 

DESCRIPTION

    문자열 haystack 내에서 문자열 needle 포함되어 있는지 검사하고 만약 있다면

    부분 문자열(substring) 포인터를 리턴한다.

    Haystack è "I love korea" // needle è "love" 경우

    haystack내에 "love" 부분 문자열이 있는지 조사하고 있다면 "love korea" 문자열의

    선두번지(l 번지) 리턴한다.

 

RETURN VALUE

    부분 문자열의 선두번지.

    부분 문자열 needle haystack내에서 발견되지 않으면 NULL 리턴.

 

SEE ALSO

    strchr è 문자열내의 특정 문자를 찾는다.

    strrchr è 문자열내의 특정 문자를 문자열의 뒤에서부터 찾는다.

 

EXAMPLE

#include <stdio.h>

#include <string.h>

 

int main(void) {

char haystack[50] = "I love korea";

char needle[50] = "love";

char *rp;

 

if (( rp = strstr(haystack, needle)) == NULL)

puts("not found");

else

puts("found")

 

printf("haystack: [%s]\n", haystack);

printf("rp: [%s]\n", rp);

return 0;

}

found

haystack: [I love korea]

rp: [love korea]

'API 및 라이브러리 > C 라이브러리 함수' 카테고리의 다른 글

sleep(3)  (0) 2011.02.12
strdup(3)  (0) 2010.09.14
system(3)  (0) 2009.12.19
getusershell(3)  (0) 2009.12.19
syslog, openlog(3)  (0) 2009.12.18
Posted by devanix