1. 입출력 함수들

 입출력 함수들은 라이브러리 함수 가운데 가장 기본이 되는 것으로, 좁은 의미의 표준 라이브러리는 이드 라이브러리 함수들만 얘기하는 경우가 많다.
 이들 함수는 이름 그대로 입력과 출력을 수행하는 함수들로, 일반 프로그래밍 언어에서는 이들이 문장 형태로 존재하지만 C에서는 특이하게 라이브러리 형태로 존재한다.
 입출력 함수에는 3가지 종류가 있는데 그 중 첫 번째가 이른바 고수준의 입출력 함수들이다.
 이들을 스트림 아입출력(stream I/O)함수들이라고도 부르는데, 이들을 사용하면 파일을 스트림으로 보고, 여러 가지 포맷된 형태로 데이터를 읽어들이거나 출력할 수 있다.
 스트림 입출력 힘수에서는 파일 포인터란 구조를 사용하여 열려진 파일에 대한 정보를 갖고 있다.

 이는 stdio.h에 다음과 같이 정의되어 있다.

/* MSC */
struct _iobuf {
    char *_ptr;
    int _cnt;
    char *_base;
    char _flag;
    char _file;
};

typedef struct _iobuf FILE;        

/* BC */
typedef struct {
    int level;				/* Fill/empty level of buffer */
    unsigned flags;			/* File status flag */
    char fd;					/* File descriptor */
    unsigned char hold;		/* Ungetc char if no buffer */
    int bsize				/* Buffer size */
    unsigned char _FAT_ *buffer;	/* Data transfer buffer */
    unsigned char _FAT_ *cutp	/* Current active pointer */
    unsigned istemp;			/* Temporary file indicator */
    short token;				/* Used for validity checking */
} FILE;					/* This is the FILE object */


다음은 스트림 입출력 함수들의 목록이다.

clearerr

해당 스트림(, 파일)에 대한 에러 표시기의 값을 지워 원상태로 만든다.

fclose

스트림(, 파일)을 닫는다.

_fcloseall(fcloseall)

모든 열려진 스트림(, 파일)을 닫는다.

_fdopen(fdopen)

이미 저수준의 입출력 함수를 사용하여 열려진 스트림(, 파일)을 그 파일의 핸들을 사용하여 스트림 형태로 다시 연다.

feof

스트림(, 파일)의 끝인지를 조사한다.

ferror

스트림(, 파일)에 동작을 취했을 때 에러가 발생 했는지를 조사한다.

fflush

현재 스트림으로부터 읽어들이는 중이었으면 중간 버퍼의 내용을 그냥 지워버리고, 쓰는 중인었으면 버퍼의 내용을 스트림에 쓰고 버퍼의 내용을 지운다.

fgetc

스트림(, 파일)으로부터 한 글자를 읽어들인다.

_fgetchar(fgetchar)

표준 입력(stdim)으로부터 한 글자를 읽어들인다.

fgetpos

현재 스트림상의 위치를 읽어들인다.

fgets

스트림(, 파일)으로부터 스트링을 읽어들인다.

_fileno(fileno)

스트림(, 파일)에 대한 파일 핸들 값을 얻는다.

clearerr

해당 스트림(, 파일)에 대한 에러 표시기의 값을 지워 원상태로 만든다.

fclose

스트림(, 파일)을 닫는다.

_fcloseall(fcloseall)

모든 열려진 스트림(, 파일)을 닫는다.

_fdopen(fdopen)

이미 저수준의 입출력 함수를 사용하여 열려진 스트림(, 파일)을 그 파일의 핸들을 사용하여 스트림 형태로 다시 연다.

feof

스트림(, 파일)의 끝인지를 조사한다.

ferror

스트림(, 파일)에 동작을 취했을 때 에러가 발생 했는지를 조사한다.

fflush

현재 스트림으로부터 읽어들이는 중이었으면 중간 버퍼의 내용을 그냥 지워버리고,

fgetc

쓰는 중인었으면 버퍼의 내용을 스트림에 쓰고 버퍼의 내용을 지운다.

_fgetchar(fgetchar)

스트림(, 파일)으로부터 한 글자를 읽어들인다.

fgetpos

표준 입력(stdim)으로부터 한 글자를 읽어들인다.

fgets

현재 스트림상의 위치를 읽어들인다.

_fileno(fileno)

스트림(, 파일)으로부터 스트링을 읽어들인다. 스트림(, 파일)에 대한 파일 핸들 값을 얻는다.

_flushall(flushall)

현재 열려 있는 모든 스트림(, 파일)과 연관된 버퍼의 내용을 지운다. 출력용인 경우 에는 이의 내용을 스트림에쓰고 지우게 된다.

fopen

스트림(, 파일)을 연다.

fprintf

포맷된 데이터를 스트림(, 파일)에 쓴다.

fputc

스트림(, 파일)에 한 글자를 출력한다.

_fputchar

표준 출력(stdout)에 한 글자를 출력한다.

fputs

스트림(, 파일)에 스트링을 출력한다.

fread

포멧되지 않은 데이터를 스트림(, 파일)으로부터 읽어들인다.

freopen

파일 포인터가 가리키고 있는 파일을 닫고 새로운 파일을 열어 이를 그 파일 포인터가 가리키도록 한다.

fscanf

스트림(, 파일)으로부터 포맷된 데이터를 읽어들인다.

fseek

파일 포인터를 특정 위치로 이동시킨다.

fsetpos

스트림 내의 현재 위치 표시를 특정 값으로 설정한다.

_fsope

파일을 공유할 수 있도록 스트림(, 파일)을 연다.

ftell

현재의 파일 위치를 얻는다.

fwrite

스트림(, 파일)에 포맷되지 않은 형태의 데이터를 출력한다.

getc

스트림(, 파일)으로부터 한 글자를 읽어들인다.

getchar

표준 입력(stdin)으로부터 한 글자를 읽어들인다.

gets

표준 입력(stdin)으로부터 한 줄을 읽어들인다.

_getw(getw)

스트림(, 파일)으로부터 하나의 int 값을 읽어들인다.

printf

표준 출력(stdout)에 포맷된 데이터를 출력한다.

putc

스트림(, 파일)에 한 글자를 출력한다.

putchar

표준 출력(stdout)에 한 글자를 출력한다.

puts

표준 출력(stdout)에 한 줄을 출력한다.

_getw(getw)

스트림(, 파일)으로부터 하나의 int 값을 읽어들인다.

printf

표준 출력(stdout)에 포맷된 데이터를 출력한다.

putc

스트림(, 파일)에 한 글자를 출력한다.

putchar

표준 출력(stdout)에 한 글자를 출력한다.

puts

표준 출력(stdout)에 한 줄을 출력한다.

_putw(putw)

스트림(, 파일)에 한 int 값을 출력한다.

rewind

스트림(, 파일)의 맨 처음 위치로 이동한다.

_rmtmp(rmtmp)

tmpfile에 의해 만들어진 임시 파일을 제거한다.

scanf

표준 입력(stdin)으로부터 포맷된 데이터를 읽어들인다.

setbuf

스트림 입출력시 사용할 버퍼를 지정한다.

setvbuf

스트림 입출력시 사용할 버퍼와 그 크기를 지정한다.

_snprintf*

포맷된 데이터의 특정 길이만큼을 스트링에 출력한다.

sprintf

포맷된 데이터를 스트링에 출력한다.

sscanf

스트링으로부터 포맷된 데이터를 읽어들인다.

_tempnam(tempnam)

주어진 디렉토리 내에서 임시로 사용할 파일의 이름을 만든다.

tmpfile

임시 파일을 하나 만든다.

tmpnam

임시로 사용할 파일의 이름을 하나 만든다.

ungetc

읽어들인 문자를 취소시켜 버퍼에 넣어 다시 읽어들일 수 있도록 한다.

vfprintf

포맷된 데이터를 스트림(, 파일)에 추력한다.

vfscanf

스트림(, 파일)으로부터 포맷된 데이터를 읽어들인다.

vprintf

표준 출력(stdout)에 포맷된 데이터를 출력한다.

vscanf

표준 입력(stdin)으로부터 포맷된 데이터를 읽어들인다.

_vsnprintf

포맷된 데이터의 특정 길이만큼을 스트링에 출력한다.

vsprintf

포맷된 데이터를 스트링에 출력한다.

vsscanf

스트링으로부터 포맷된 데이터를 읽어들인다


두 번째는 저수준의 입출력 함수들로 이른바 파일 핸들(file handle)을 통해 입출력을 수행하는 함수들이다. 이에 속하는 것들에는 다음과 같은 것들이 있다. 위에서 "*"로 표시된 것은 MSC에만 있는 것이며 "로 표시된 것은 BC에만 있는 것이다. 또 괄호(()) 밖의 것은 MSC이며, 괄호 안의 것은 BC의 것이다.

_close

연 파일을 닫는다.

_commit*

파일의 변경된 내용을 강제로 디스크에 쓰도록 한다.

_creat

새 파일을 만든다.

creat

새 파일을 만든다.

creatnew

새 파일을 만든다.

creattemp

지정한 디렉토리에 고유의 이름으로 새 파일을 만든다.

_dup(dup)

한 파일에 대한 또 다른 파일 핸들을 중복되게 만든다.

_dup2(dup2)

특정 파일 핸들의 값을 다른 핸들의 값과 같게 만든다.

_eof(eof)

파일의 끝인지를 조사한다.

lock

파일 공유시 다른 프로세스가 사용하지 못하도록 특정 부분에 lock을 설정한다.

_lseek(lseek)

파일 포인터를 특정 위치로 이동한다.

_open

파일을 연다.

_read

파일로부터 데이터를 읽어들인다.

read

파일로부터 데이터를 읽어들인다.

_sopen(sopen)

파일을 공유할 수 있도록 연다.

_tell(tell)

현재 파일 포인터가 있는 위치를 구한다.

unlock

설정한 lock를 해제한다.

_write

파일에 데이터를 출력한다.

끝으로 콘솔(즉, 키보드나 모니터)이나 포트로부터 데이터를 읽어들이고 출력하는 함수들이 있다. 이들은 ANSI에는 없고, MSC 와 BC가 자체적으로 제공하는 것으로 PC 환경 이외의 다른 환경(즉, UNIX와 같은)에서는 호환성이 없으므로 주의하여야 한다. 이에 속하는 함수들은 다음과 같다.

_cgets(cgets)

콘솔로부터 하나의 스트링을 읽어들인다.

_cprintf(cprintf)

포맷된 데이터를 콘솔에 출력한다.

_cputs(cputs)

콘솔에 스트링을 출력한다.

_cscanf(cscanf)

콘솔로부터 포맷된 데이터를 읽어들인다.

_getch(getch)

콘솔로부터 한 글자를 읽어들인다.

_getche(getche)

콘솔로부터 한 글자를 읽어들이고 읽어들인 글자를 되출력한다.

getpass

콘솔로부터 패스워드를 읽어들인다.

_inp(inp)

특정 I/O 포트로부터 한 바이트의 데이터를 읽어들인다.

_inpw(inpw)

특정 I/O 포트로부터 한 워드( 2byte)의 데이터를 읽어들인다.

ioctl

I/O 장치를 제어한다.

_kbhit(kbhit)

콘솔에 키 입력이 있는지 조사한다.

_outp(outp)

특정 I/O 포트에 한 byte의 데이터를 출력한다.

_outpw(outpw)

특정 I/O 포트에 한 워드( 2byte)의 데이터를 출력한다.

_putch(putch)

콘솔에 한 글자를 출력한다.

_setcursortype

콘솔의 커서 모양을 설정한다.

_ungetch(ungetch)

콘솔에 읽어들인 글자를 취소해서 다음에 그 글자를 다시 읽어들이도록 한다.


2. 수학함수들

수학함수들은 이름 그대로 수학과 관계된 함수들로 수학에서 사용되는 여러 가지 값들을 계산하여 그 결과를 넘겨 주는 역할을 한다. 이들은 대부분 double 값을 받아 double 값을 넘겨 주므로 이에 맞게 사용하는 것이 필요하며, 이들 함수 대부분이 MATH.H에 선언되어 있으므로 이를 포함시키면 된다. MSC 와 BC의 수학 함수들은 다음과 같다.

abs

정수 값의 절대 값을 구한다.

acos

arccosine의 값을 구한다.

_scosl(scosl)

arccosine의 값을 구한다.

arg

복소수의 각도를 구한다.

asin arcsine

값을 구한다.

_asinl(asinl)

arcsine의 값을 구한다.

atan

arctangent의 값을 구한다.

_atan1(atanl)

arctangent의 값을 구한다.

atan2

arctangent의 값을 구한다.

_atan2l(atan2l)

arctangent의 값을 구한다.

bcd

숫자를 BCD(Binary Coded Decimal) 형태로 변환한다.

_cabs(cabs)

복소수의 절대 값을 구한다.

_cabsl(cabsl)

복소수의 절대 값을 구한다.

ceil

주어진 수 보다 같거나 큰 가장 작은 정수 값을 계산한다.

_ceill(ceill)

주어진 수 보다 같거나 큰 가장 작은 정수 값을 계산한다.

_clear87

부동 소수점 상태를 나타내는 워드의 값을 구한후 이를 다시 reset한다.

complex

복소수를 만든다.

conj

복소수의 켤레 복소수를 구한다.

_control87

부동 소수점 상태를 나타내는 워드의 값을 구하고 이를 특정 값으로 설정한다.

cos cosine

값을 계산한다.

_cosl(cosl)

cosine 값을 계산한다.

cosh hyperbolic

cosine 값을 계산한다.

_coshl(coshl)

hyperbolic cosine 값을 계산한다.

_dieeetomsbin*

IEEE double 값을 마이크로소프트 이진 double 값으로 변환한다.

div

정수로 나눈 나머지와 몫을구한다.

_dmsbintoieee*

마이크로소프트 이진 double 값을 IEEE double 값으로 변한한다.

exp

ex을 계산한다.

_expl(expl)

ex을 계산한다.

fabs

절대 값을 구한다.

_fabsl(fasbl)

절대 값을 구한다.

_fieeetomsbin*

IEEE float 값을 마이크로소프트 이진 float 값으로 변환한다.

floor

주어진 값보다 같거나 작은 가장 큰 정수 값을 구한다.

_floorl(floorl)

주어진 값보다 같거나 작은 가장 큰 정수 값을 구한다.

fmod

실수 값의 나머지를 구한다.

_fmodl(fmod)

실수 값의 나머지를 구한다.

_fmsbintoieee*

마이크로소프트 이진 float 값을 IEEE floate 값으로 변한한다.

_fpreset

부동 소수점 수학 패키지를 다시 초기화시킨다.

frexp

실수 값을 지수와 가수 부분으로 나눈다.

frexpl(frexpl)

실수 값을 지수와 가수 부분으로 나눈다.

_hypot(hypot)

직각 삼각형의 대변의 길이를 구한다.

_hypotl(hypotl)

직각 삼각형의 대변의 길이를 구한다.

imag

복소수의 허수 부분을 구한다.

_j0*

첫번째 종류의 0 Bessel 함수 값을 구한다.

_j01*

첫 번째 종류의 0 Bessel 함수 값을 구한다.

_j1*

첫 번째 종류의 1 Bessel 함수 값을 구한다.

_j1l

첫 번째 종류의 1 Bessel 함수 값을 구한다.

_jn*

첫 번째 종류의 n Bessel 함수 값을 구한다.

_jnl*

첫 번째 종류의 n Bessel 함수 값을 구한다.

labs

long int 값의 절대 값을 구한다.

ldexp

x*2y을 계산한다.

_ldexpl(ldexpl)

x*2y을 계산한다.

ldiv

long int 간의 몫과 나머지를 구한다.

log

자연 로그 값을 구한다.

_logl(logl)

자연 로그 값을 구한다.

log10

10진 로그 값을 구한다.

_log10l(log10l)

10진 로그 값을 구한다.

_lrotl unsigned

long int 값을 왼쪽으로 쉬프트한다.

_lrotr unsigned

long int 값을 오른쪽으로 쉬프트한다.

_matherr(matherr)

수학 계산시 발생한 에러를 처리한다.

_matherrl

수학 계산시 발생한 에러를 처리한다.

_ _max(max)

두 값 중 큰 값을 계산한다.

_ _min(min)

두 값 중 작은 값을 계산한다.

modf

실수 값을 정수 부분과 소수점 부분으로 나눈다.

_modfl(modfl)

실수 값을 정수 부분과 소수숨 부분으로 나눈다.

norm

복소수의 절대 값의 제곱근을 구한다.

polar

주어진 크기와 각도를 갖는 복소수를 구한다.

poly

다항식 형태를 만든다.

polyl

다항식 형태를 만든다.

pow

xy을 계산한다.

_powl(powl)

xy을 계산한다.

pow10

10x을 계산한다.

pow10l

10x을 계산한다.

rand

난수를 만든다.

random

난수를 만든다.

randomize

난수의 초기값으로 난수를 준다.

real

복소수의 실수 부분을 구하거나 BCD 형태의 값을 float double, long double 형태로 되돌린다.

_rotl

unsigned int 값을 왼쪽으로 쉬프트한다.

_rotr

unsigned int 값을 왼쪽으로 쉬프트한다.

sin

sine 값을 계산한다.

_sinl(sinl)

sine 값을 계산한다.

sinh

hyperbolic sine 값을 계산한다.

_sinhl(sinhl)

hyperbolic sine 값을 계산한다.

sqrt

제곱근을 계산한다.

_sqrtl(sqrtl)

제곱근을 계산한다.

srand

난수 발생의 초기 값을 준다.

_status87

부동 소수점 상태를 나타내는 워드의 값을 구한다.

tan tangent

값을 구한다.

_tanl(tanl)

tangent 값을 구한다.

tanh

hyperbolic tangent 값을 계산한다.

_tanhl(tanhl)

hyperbolic tangent 값을 계산한다.

_y0*

두 번째 종류의 0 Bessel 함수 값을 구한다.

_y0l

두 번째 종류의 0 Bessel 함수 값을 구한다.

_y1*

두 번째 종류의 1 Bessel 함수 값을 구한다.

_y1l*

두 번째 종류의 1 Bessel 함수 값을 구한다.

_yn*

두 번째 종류의 n Bessel 함수 값을 구한다.

_ynl*

두 번째 종류의 n Bessel 함수 값을 구한다


3. 스트링 처리 함수들

스트링 처리 함수들은 스트링과 관련된 함수들로 두 개의 스트링을 서로 연결하거나 스트링을 여러 개의 스트링으로 나누는 등의 역할을 한다. 이들 함수는 STRING.H에 선언되어 있으므로 이를 포함 시키면 된다.

이들 함수들은 다음과 같다.

_nstrdup*

_fstrcat

한 스트링 끝에 다른 스트링을 덧붙인다.

_fstrchr

스트링 내에서 특정 글자를 찾는다.

_fstrcmp*

두 개의 스트링을 알파벳 순으로 비교한다.

_fstrcpy*

한 스트링을 그대로 다른 스트링에 복사한다.

_fstrcspn

스트링 내에서 특정 글자들이 처음으로 나타나는 위치를 찾는다.

_fstrdup

똑같은 스트링을 하나 더 만든다.

_fstricmp

두 개의 스트링을 대·소문자 구별하지 않고 알파벳순으로 비교한다.

_fstrlen

스트링의 길이를 구한다.

_fstrlwr

스트링 내의 대문자를 모두 소문자로 바꾼다.

_fstrncat

한 스트링 끝에 다른 스트링의 특정 길이만큼을 덧붙인다.

_fstrncmp

두 스트링의 일정 길이까지만 서로 비교한다.

_fstrncpy

한 스트링의 일정 길이만큼을 복사한다.

_fstrnicmp

두 스트링의 일정 길이까지만 대?소문자 구별없이 서로 비교한다.

_fstrnset

스트링의 특정 부분을 특정 글자로 세팅한다.

_fstrpbrk

한 스트링 내에서 다른 스트링에 있는 글자의 처음 시작 위치를 찾는다.

_fstrrchr

스트링 내에서 특정 글자를 스트링의 맨 끝에서부터 찾는다.

_fstrrev

스트링을 거꾸로 뒤집는다.

_fstrset

스트링 내의 모든 글자를 특정 글자로 세팅한다.

_fstrspn

한 스트링 내에서 다른 스트링에 있는 글자들이 아닌 것으로 시작하는 첫 번째 위치를 찾는다.

_fstrstr

한 스트링 내에서 다른 스트링이 시작하는 위치를 찾는다.

_fstrtok

스트링 내에서 다음 토큰을 찾는다.

_fstrupr

스트링 내의 모든 소문자를 대문자로 변환한다.

_mblen(mblen)

다중 바이트 문자인 경우 한 문자가 차지하는 바이트의 수를 현재의 지역 정보를 바탕으로 구한다.

mbstowcs

다중 바이트 문자 스트링을 wide 문자 스트링으로 변한한다.

mbtowc

다중 바이트 문자를 wide 문자로 변환한다.

stpcpy

한 스트링을 다른 스트링에 복사한다.

strcat

한 스트링 끝에 다른 스트링을 덧붙인다.

strchr

스트링 내에서 특정 글자를 찾는다.

strcmp

두 개의 스트링을 알파벳 순으로 비교한다.

strcmpi

두 개의 스트링을 대·소문자 구별없이 비교한다.

strcpy

한 스트링을 그대로 다른 스트링에 복사한다.

strcspn

스트링 내에서 특정 글자들이 처음으로 나타나는 위치를 찾는다.

_strdup(strdup)

똑같은 스트링을 하나 더 만든다.

strerror

에러 번호를 그에 대한 메시지 형태로 바꾼다.

_strerror

에러번호를 그에 대한 사용자가 정의한 메시지 형태로 바꾼다.

_stricmp(stricmp)

두 개의 스트링을 대?소문자 구별하지 않고 알파벳순으로 비교한다.

strlen

스트링의 길이를 구한다.

_strlwr(strlwr)

스트링 내의 대문자를 모두 소문자로 바꾼다.

strncat

한 스트링 끝에 다른 스트링의 특정 길이만큼을 덧붙인다.

strncmp

두 스트링 일정 길이까지만 서로 비교한다.

strncmpi

두 스트링의 일정 길이까지를 대·소문자 구별 없이 비교한다.

strncpy

한 스트링의 일정 길이만큼을 복사한다.

_strnicmp(strnicmp)

두 스트링의 일정 길이까지만 대·소문자 구별없이 서로 비교한다.

_strnset(strnset)

스트링의 특정 부분을 특정 글자로 세팅한다.

strpbrk

한 스트링 내에서 다른 스트링에 있는 글자의 처음 시작 위치를 찾는다.

strrchr

스트링 내에서 특정 글자를 스트링의 맨 끝에서부터 찾는다.

_strrev(strrev)

스트링을 거꾸로 뒤집는다.

_strset(strset)

스트링 내의 모든 글자를 특정 글자로 세팅한다.

strspn

한 스트링 내에서 다른 스트링에 있는 글자들이 아닌 것으로 시작하는 첫 번째 위치를 찾는다.

strstr

한 스트링 내에서 다른 스트링이 시작하는 위치를 찾는다.

strtok

스트링 내에서 다음 토큰을 찾는다.

_strupr(strupr)

스트링 내의 모든 소문자를 대문자로 변환한다.

wcstombs

wide 문자 스트링을 다중 바이트 스트링으로 변환한다.

wctomb

wide 문자를 다중 바이트 문자로 변환한다.


4. 메모리 처리 함수들


메모리 처리 함수들은 능동적으로 메모리를 할당받아 사용하고, 메모리간에 복사 이동할 수 있도록 해 주는 역할을 한다. 사용할 메모리를 가리키는 주소에 따라 far, near, hun, 가상메모리(Virtual Memory)에 대한 함수들로 나누어지게 되는데, 이에 대한 지정이 없는 경우에는 현재 사용되는 메모리 모델에 따라 결정된다.

_alloca(alloca)

프로그램의 스택으로부터 메모리를 할당한다.

allocmem

DOS 메모리 세그먼트를 할당받는다.

_bcalloc*

배열로 사용할 메모리를 할당받는다.

+bexpand*

할당받은 메모리를 그 위치에서 더 늘이거나 줄인다.

_bfree*

할당받은 메모리를 반납한다.

_bfreeseg*

_bheapseg에 의해 할당받은 heap 세그먼트를 반납한다.

_bheapadd*

heap에 메모리를 추가한다.

_bheapchk

heap 메모리의 일관성을 조사한다.

_bheapmin*

heap 메모리 내에서 사용하지 않은 메모리를반납한다.

_bheapseg*

특정 크기의 based-heap 세그먼트를 하나 할당받는다.

_bheapset*

heap 메모리의 비어 있는 부분을 특정 값으로 세팅한다.

_bheapwalk*

heap 내에 있는 각 항목에 대한 정보를 검색한다.

_bmalloc*

특정 크기의 메모리를 할당받는다.

_bmsize*

할당받은 메모리의 크기를 구한다.

_brealloc*

이미 할당받은 메모리를 다른 크기로 재할당받는다.

brk

데이터 세그먼트의 경계선을 변경한다.

calloc

배열로 사용할 메모리를 할당받는다.

coreleft

미사용중인 RAM 메모리 크기를 계산한다.

_expand*

할당받은 메모리를 그 위치에서 더 늘리거나 줄인다.

farcoreleft

far heap에서 미사용중인 부분의 크기를 구한다.

_fcalloc(farcalloc)

배열로 사용할 메모리를 할당받는다.

farheapcheckfree

far heap의 빈 공간에 대해 특정 값으로 채워져 있는지 조사한다.

farheapchecknode

far heap의 한 노드에 대해 올바른지 조사한다.

farheapfillfree

far heap 내의 빈 부분을 특정값으로 채운다.

_fexpand*

할당받은 메모리를 그 위치에서 더 늘리거나 줄인다.

_ffree(farfree)

할당받은 메모리를 반납한다.

_fheapchk(farheapcheck)

heap 메모리의 일관성을 조사한다.

_fheapmin* heap

메모리 내에서 사용하지 않은 메모리를 반납한다.

_fheapset* heap

메모리의 비어 있는 부분을 특정 값으로 세팅한다.

_fheapwalk(farheapwalk)

heap 내에 있는 각 항목에 대한 정보를 검색한다.

_fmalloc(farmalloc)

특정 크기의 메모리를 할당받는다.

_fmemccpy

특정 문자가 복사되거나 특정 개수만큼 복사될 때까지 메모리의 한 위치에서 다른 위치로 복사한다.

_fmemchr

메모리로부터 특정 문자가 있는 위치를 찾는다.

_fmemcmp

두 메모리에 있는 문자들을 서로 비교한다.

_fmemcpy

한 메모리의 데이터를 다른 곳의 메모리에 복사한다.

_fmemicmp

두 메모리에 있는 문자들을 대·소문자 구별없이 비교한다.

_fmemmove*

한 메모리의 데이터를 다른 곳의 메모리에 복사한다. 두 부분이 겹쳐도 되는 것이 memcpy 와 다르다.

_fmemset

메모리를 특정 문자로 초기화한다.

_fmsize*

할당받은 메모리의크기를 구한다.

_frealloc(farrealloc)

이미 할당받은 메모리를 다른 크기로 재할당받는다.

free

할당받은 메모리를 반납한다.

_freect*

far heap에 저장할 수 있는 특정 크기의 구조의 최대 개수를 계산한다.

_halloc*

huge 배열을 저장할 메모리를 할당받는다.

_heapadd*

heap에 메모리를 추가한다.

_heapchk(heapcheck)

heap 메모리의 일관성을 조사한다.

heapcheckfree

heap의 빈 공간이 특정 값으로 채워져 있는지 조사한다.

heapchecknode

heap 내의 한 노드가 올바른지 조사한다.

heapfillfree

heap의 빈 공간을 특정값으로 채운다.

_heapmin*

heap 메모리 내에서 사용하지 않은 메모리를 반납한다.

_heapset*

heap 메모리의 비어있는 부분을 특정값으로 세팅한다.

_heapwalk(heapwalk)

heap 내에 있는 각 항목에 대한 정보를 검색한다.

_hfree*

_halloc에 의해 할당받은 메모리를 반납한다.

malloc

특정크기의 메모리를 할당받는다.

_memavl*

near heap에서 할당받을 수 있는 최대 크기를 계산한다.

_memccpy(memccpy)

특정 문자가 복사되거나 특정 개수만큼 복사될 때까지 메모리의 한 위치에서 다른 위치로 복사한다.

memchr

메모리로부터 특정 문자가 있는 위치를 찾는다.

memcmp

두 메모리에 있는 문자들을 서로 비교한다.

memcpy

한 메모리의 데이터를 다른 곳의 메모리에 복사한다.

_memicmp(memicmp)

두 메모리에 있는 문자들을 대·소문자 구별없이 비교한다.

_memmax*

near heap에서 할당받을 수 있는 연속적인 메모리의 최데크기를 구한다.

memmove

한 메모리의 데이터를 다른 곳의 메모리에 복사한다. 두 부분이 겹쳐도 되는 것이 memcpy와 다르다.

memset

메모리를 특정 문자로 초기화 한다.

MK_FP

far 포인터를 만든다.

_movedata(movedata)

특정 주소의 데이터를 다른 주소로 복사한다.

movemem

특정 위치의 데이터를 다른 위치로 복사한다. 둘 사이에 겹치는 부분이 있어도 제대로 복사한다.

_msize*

할당받은 메모리의 크기를 구한다.

_ncalloc

배열로 사용할 메모리를 할당받는다.

_nexpand*

할당받은 메모리를 그 위치에서 더 늘리거나 줄인다.

_nfree*

할당받은 메모리를 반납한다.

_nheapchk

heap 메모리의 일관성을 조사한다.

_nheapmin*

heap 메모리 내에서 사용하지 않은 메모리를 반납한다.

_nheapset*

heap 메모리의 비어있는 부분을 특정값으로 세팅한다.

_nheapwalk*

heap 내에 있는 각 항목에 대한 정보를 검색한다.

_nmalloc

특정 크기의 메모리를 할당받는다.

_nmsize*

할당받은 메모리의 크기를 구한다.

_nrealloc*

이미 할당받은 메모리를 다른 크기로 재할당받는다.

_OvrInitEms

확장메모리(Expanded Memory)의 존재 여부를 조사하여 이것이 있으면 이를 swap 영역으로 사용한다.

OvrInitExt

연장메모리(Extended Memory)의 존재 여부를 조사하여 이것이 있으면 이를 swap 영역으로 사용한다.

realloc

이미 할당받은 메모리를 다른 크기로 재할당받는다.

sbrk

데이터 세그먼트의 한계를 조절한다.

setblock

이미 할당받은 메모리의 크기를 변경한다.

_set_bnew_handler*

new 연산자가 메모리 할당받는데 실패했을 때 처리하는 방법을 지정한다.

_set_fnew_handler*

new 연산자가 메모리 할당받는데 실패했을 때 처리하는 방법을 지정한다.

_set_hnew_handler*

new 연산자가 메모리 할당받는데 실패했을 때 처리하는 방법을 지정한다.

setmem

메모리의 특정 부분을 특정 값으로 초기화시킨다.

_set_new_handler (set_new_handler)

new 연산자가 메모리 할당받는데 실패했을 때 처리하는 방법을 지정한다.

_set_nnew_handler*

new 연산자가 메모리 할당받는데 실패했을 때 처리하는 방법을 지정한다.

_stackavail*

스택에서 _alloca로 할당받을 수 있는 크기를 계산한다.

_swab(swab)

인접한 바이트들의 값을 서로 교환한 값을 주어진 메모리에 복사한다.

_vfree*

할당받은 가상 메모리를 반납한다.

_vheapinit*

가상 메모리 관리자를 초기화시킨다.

_vheapterm*

가상 메모리 관리자를 종료한다.

_vload*

할당받은 가상 메모리를 적재한다.

_vlock*

할당받은 가상 메모리를 lock을 건다.

_vlockcnt*

특정 가상 메모리에 걸린 lock의 수를 계산한다.

_vmalloc*

가상 메모리를 할당받는다.

_vmsize*

할당받은 가상 메모리의 크기를 계산한다.

_vrealloc*

할당받은 가상 메모리의 크기를 다른 크기로 재할당받는다.

_vunlock*

가상 메모리에 걸은 lockj을 해제한다.


앞에서 _b로 시작하는 것은 bases heap을 사용하는 것으로 based heap은 기본 데이터 세그먼트 바깥쪽에 별도로 존재하는 세그먼트를 사용하는 것이다. 이를 사용하면 관련된 데이터를 같은 세그먼트 내에 둘 수 있고 포인터 연산이 더 빠른 장점이 있다. 반면에 _f로 시작하는 것은 far heap을, _n으로 시작하는 것은 near heap을, 그리고 _v로 시작하는 것은 가상 메모리를 나타낸다. 위의 함수들을 보면 MSC가 BC보다 더 다양하고 세밀하게 함수들을 제공하는 것을 볼 수 있다.

5. 파일 관리 함수들

파일 관리 함수들은 파일과 디렉토리의 상태를 조사하고, 속성을 변경하며 불필요한 파일이나 디렉토리를 제거할 수 있도록 해 주는 함수들로, 함수 대부분이 DIR.H 나 DIRECT.H에 선언되어 있으므로 이를 포함시키면된다.

MSC 와 BC의 수학 함수들은 다음 함수들이 이에 속한다.

_access(access)

파일을 사용할 수 있는 권한을 조사한다.

_chdir(chdir)

현재의 작업디렉토리를 변경한다.

_chdrive

디스크 드라이브를 변경한다.

_chmod

파일을 사용할 수 있는 권한을 변경한다.

_chsize(chsize)

파일의 크기를 변경한다.

closedir

opendir에 의해 연 디렉토리를 닫는다.

_filelength(filelength)

파일의 길이를 구한다.

findfirst

디렉토리 안을 검색한다.

findnext

findfirst의 검색을 계속한다.

_fnmerge

여러 요소들을 조합하여 완전한 경로를 만든다.

fnsplit

완전한 경로를 여러 요소들로 나눈다.

_fullpath

상대 경로를 절대 경로로 변경한다.

_fstat(fstat)

주어진 파일 핸들에 대해 파일의 정보를 구한다.

getcurdir

특정 드라이브에 대한 현재의 디렉토리를 구한다.

_getcwd(getcwd)

특정 디스크 드라이브에 대한 현재의 작업 디렉토리를 구한다.

_getdcwd

특정 드라이브에 대한 현재의 디렉토리를 구한다.

getdisk

현재의 디스크 드라이브 번호를 구한다.

_getdrive

현재의 작업 디스크 드라이브를 구한다.

getftime

파일의 시간과 날짜를 구한다.

_isatty(isatty)

주어진 핸들이 터미널이나 콘솔, 프린터 또는 직렬 포트에 대한 핸들인지 조사한다.

_locking(locking)

파일의 특정 부분에 대해 lock을 건다.

_makepath

경로에 관계된 요소들을 조합하여 하나의 완전한 경로를 만든다.

_mkdir(mkdir)

새로운 디렉토리를 만든다.

_mktemp(mktemp)

고유한 파일 이름을 만든다.

opendir

디렉토리를 연다.

readdir

디렉토리의 내용을 읽어 들인다.

remove

파일을 제거한다.

rename

파일의 이름을 변경한다.

rwwinddir

디렉토리 내용의 맨 처음으로 이동하여 그 부분부터 다시 읽어들이도록 한다.

_rmdir(rmdir)

디렉토리를 제거한다.

_searchenv

주어진 경로상에 특정 파일이 있는지 조사한다.

searchpath

특정 파일에 대한 DOS 경로를 찾는다.

setdisk

현재의 디스크 드라이브 번호를 설정한다.

_setmode(setmode)

파일 내용을 해석하는 방법을 설정한다.

_splitpath

파일 경로를 각 구성 요소들로 나눈다.

_stat(stat)

주어진 파일에 대한 정보를 얻는다.

_umask(umask)

파일 만들 때의 기본 사용 권한을 설정한다.

unlink(unlink)

파일을 제거한다.


위의 내용을 보면 BC가 MSC보다 더 다양한 함수들을 제공함을 알 수 있다.

 

6. 시간 처리 함수들

시간과 관계된 함수들은 현재의 시간이나 날짜를 다양한 형태로 구하는 함수들로 함수 대부분이 time.h에 선언되어 있으므로 이를 포함시키면 된다.

MSC 와 BC의 수학 함수들은 다음 함수들이 이에 속한다.

asctime

struct tm 형태의 시간을 스트링 형태로 변환한다.

clock

한 프로세서에 대해 경과된 CPU 시간을 구한다.

ctime

time_t 형태의 시간을 스트링 형태로 변환한다.

difftime

두 시간 사이의 차이를 구한다.

dostounix

DOS 형태의 시간과 날짜를 UNIX 형태로 변환한다.

_ftime(ftime)

현재의 시스템 시간을 struct _timeb 형태로 구한다.

getdate

시스템의 날짜를 구한다.

getftime

파일의 시간과 날짜를 구한다.

gettime

시스템의 시간을 구한다.

gmtime

time_t 형태의 시간을 struct tm 형태의 시간으로 변경한다.

localtime

time_t 형태의 시간을 지역 시간대를 고려하여 struct tm 형태의 시간으로 변경한다.

mktime

struct tm 형태의 시간을 time_t 형태로 변경한다.

setdate

시스템의 날짜를 선정한다.

settime

시스템의 시간을 선정한다.

stime

시스템의 시간과 날짜를 설정한다.

_strdate

현재의 시스템 시간을 스트링 형태로 구한다.

strftime

포맷된 시간을 만든다.

_strtime

현재의 시스템 시간을 스트링 형태로 구한다.

time

현재의 시스템 시간을 time_t 형태로 구한다.

_tzset(tzset)

TZ 환경 변수의 값을 시간을 계산할 때 사용할 수 있도록 한다.

unixtodos

UNIX의 시간을 DOS 형태의 시간으로 변경한다.

_utime(utime)

파일 변경 시간을 설정한다.


시간에 있어서의 MSC와 BC가 거의 일치하는데, BC가 조금 더 많은 함수들을 제공하고 있다.


7. 그래픽 처리 함수들

그래픽은 사용하는 시스템마다 달라지기 때문에 MSC와 BC가 전혀 다른 형태를 취하고 있다. 그러나 기본적으로 제공하는 기능은 거의 유사한데, MSC의 경우에는 저수준의 그래픽 함수들과 폰트와 관계된 함수들을 GRAPHICS.LIB에, 챠트와 관계된 함수들을 PGCHART.LIB에 제공하고 있다. 반면에 BC의 경우에는 BGI 파일을 이용한 그래픽 함수들을 GRAPHICS.LIB를 통해 제공하고 있다.

MSC 와 BC가 제공하는 그래픽 함수는 다음과 같다.

_arc(arc)

호를 그린다.

_arc_w*

호를 그린다.

_arc_wxy*

호를 그린다.

bar

이차원 막대 그래프를 그린다.

bar3d

3차원 막대 그래프를 그린다.

circle

원을 그린다.

_clearscreen(cleardevice)

화면의 내용을 지우고 현재의 배경색으로 칠한다.

clearviewport

현재의 viewport의 내용을 지운다.

closegraph

그래픽을 종료한다.

detectgraph

사용중인 하드웨어를 조사하여 알맞는 그래픽 모드와 드라이버를 결정한다.

_displaycursor*

커서를 나타나거나 나타나지 않게 한다.

drawpoly

다각형의 테두리를 그린다.

ellipse

타원의 한 호를 그린다.

_ellipse*

원이나 타원을 그린다.

_ellipse_w*

원이나 타원을 그린다.

_ellipse_wxy*

원이나 타원을 그린다.

fillellipse

타원을 그리고 그 안을 채운다.

fillpoly

다각형을 그리고 그 안을 채운다.

_floodfill(floodfill)

현재의 색깔로 화면의 특정 부분을 흘려 채운다.

_floodfill_w*

현재의 색깔로 화면의 특정 부분을 흘려 채운다.

_getactivepage*

현재 사용중인 페이지번호를 구한다.

getarccoords

가장 최근에 그린 호의 좌표를 구한다.

_gettarcinfo*

가장 최근에 그린 호나 파이 구조의 끝점의 좌표를 구한다.

getaspectratio

현재 그래픽 모드의 x축과 y축의 비율을 구한다.

_getbkcolor(getbkcolor)

현재 사용중인 배경색을 구한다.

_getcolor(getcolor)

현재의 색깔을 구한다.

_getcurrentposition*

view 좌표에서의 현재 위치를 구한다.

_getcurrentposition_w*

window 좌표에서의 현재 위치를 구한다.

getdefaultpalette

팔레트 구조의 기본 값을 얻는다.

getdrivername

현재의 그래픽 구동기의 이름을 얻는다.

_getfillmask*

현재의 fill mask를 구한다.

getfillpattern

사용자가 정의한 fill 패턴을 메모리에 복사한다.

getfillsettings

현재의 fill 패턴과 색깔에 대한 정보를 얻는다.

_getfontinfo*

현재의 폰트 속성을 얻는다.

getgraphmode

현재의 그래픽 모드를 얻는다.

_getgtextextent*

현재 폰트를 이용한 텍스트 출력시 텍스트의 폭의 길이를 픽셀 단위로 구한다.

_getgtextvector*

텍스트 출력시 폰트의 경사 방향을 구한다.

_getimage(getimage)

화면 이미지를 메모리에 저장한다.

_getimage_w*

화면 이미지를 메모리에 저장한다.

_getimage_wxy*

화면 이미지를 메모리에 저장한다.

getlinesettings

현재의 선 유형과 패턴, 두께를 구한다.

_getlinestyle*

현재의 선 유형을 구한다.

getmaxcolor

setcolor 함수에 넘겨줄 수 있는 색 값의 최대치를 구한다.

getmaxmode

현재의 드라이부에서 사용할 수 있는 최대의 모드값을 구한다.

getmaxx

x 화면 축의 최대 값을 구한다.

getmaxy

y 화면 축의 최대 값을 구한다.

getmodename

특정 그래픽 모드의 이름을 구한다.

getmoderange

주어진 그래픽 구동기의 모드 값의 범위를 구한다.

getpalette

현재의 팔레트에 대한 정보를 얻는다.

getpalettesize

팔레트 색깔 참조 표의 크기를 구한다.

_getphyscoord*

view 좌표를 물리적 좌표로 변환한다.

getpixel

특정 픽셀의 색깔을 구한다.

_gettextcolor*

현재의 텍스트 색깔을 구한다.

_gettextcursor*

현재의 커서 속성을 얻는다. (텍스트 모드에서만 가능)

_gettextposition*

현재의 텍스트 출력 위치를 얻는다.

gettextsettings

현재의 그래픽 텍스트 폰트에 대한 정보를 얻는다.

_gettextwindow*

현재의 텍스트 윈도우 경계를 얻는다.

_getvideoconfig*

현재 사용중인 그래픽 환경의 상태를 구한다.

_getviewcoord*

물리적 좌표를 view 좌표로 변환한다.

_getviewcoord_w*

window 좌표를 view 좌표로 변환한다.

_getviewcoord_wxy*

_wxycoord 구조에 있는 window 좌표들을 view 좌표로 변환한다.

getviewsettings

현재의 viewport에 대한 정보를 구한다.

_getvisualpage*

현재의visual 페이지 번호를 구한다.

_getwindowcoord*

view 좌표를 window 좌표로 변환한다.

_getwritemode*

현재의 논리적 쓰기 모드가 어떤 것인가를 구한다.

getx 현재의 x

좌표 값을 구한다.

gety 현재의 y

좌표 값을 구한다.

graphdefaults

모든 그래픽 값을 초기값으로 설정한다.

grapherrormsg

그래픽 함수 호출시 발생한 에러 메시지 스트링에 대한 포인터를 얻는다.

_graphfreemem

_graohgetmem에 얻은 메모리를 반납하는 방법을 설정한다.

_graphgetmem

그래픽시 필요한 메모리를 할당받은 방법을 설정한다.

graphresult

실패로 끝난 가장 최근의 그래픽 동작에 대한 결과를 얻는다.

_grstatus*

가장 최근에 호출한 그래픽 함수의 호출 결과를 얻는다.

_imagesize(imagesize)

이미지를 저장할 버퍼의 크기를 바이트 단위로 계산한다.

_imagesize_w*

이미지를 저장할 버퍼의 크기를 바이트 단위로 계산한다.

_imagesize_wxy*

이미지를 저장할 버퍼의 크기를 바이트 단위로 계산한다.

initgraph

그래픽 시스템을 초기화 시킨다.

installuserdriver

장치 구동기를 BGI 장치 구동기 표에 추가한다.

installuserfont

BGI 시스템 내에 없는 .CHR 폰트 파일을 설치한다.

line

두 점 사이에 선을 그린다.

linerel

현재 위치에서 특정 거리에 있는 선을 그린다.

_lineto(lineto)

현재 위치에서 특정 거리에 있는 선을 그린다.

_lineto_w*

현재 위치에서 특정 거리에 있는 선을 그린다.

moverel

현재 위치에서 특정 거리에 있는 위치로 이동한다.

_moveto(moveto)

현재의 그래픽 출력 위치를 특정 위치로 설정한다.

_moveto_w*

현재의 그래픽 출력 위치를 특정 위치로 설정한다.

_outgtext*

특정 위치에 현재의 폰트로 텍스트를 출력한다.

_outmem*

메모리 버퍼로부터 특정 길이의 텍스트를 출력한다.

_outtext(outtext)

현재의 텍스트 위치에 텍스트 스트링을 출력한다.

outtextxy

특정 위치에 스트링을 출력한다.

_pg_analyzechart*

막대나 열, 라인 챠트에 대한 단위 수열의 데이터를 분석한다.

_pg_analyzechartms*

막대나 열, 라인 챠트에 대한 단위 수열의 데이터를 분석한다.

_pg_analyzepie*

파이 챠트에 대한 데이터를 분석한다.

_pg_analyzescatter*

산포도에 대한 단위 수열의 데이터를 분석한다.

_pg_analyzescatterms*

산포도에 대한 다중 수열의 데이터를 분석한다.

_pg_chart*

단위 수열의 막대나 열, 선 챠트를 그린다.

_pg_chartms*

다중 수열의 막대나 열, 선 챠트를 그린다.

_pg_chartpie*

파이 챠트를 그린다.

_pg_chartscatter*

단위 수열의 데이터에 대한 산포도를 그린다.

_pg_chartscatterms*

여러 수열의 대한 산포도를 그린다.

_pg_defaultchart*

특정 챠트 유형에 대한 모든 필요한 변수들의 값을 초기화시킨다.

_pg_getchardef*

특정 문자에 대한 8×8 픽셀 비트맵을 얻는다.

_pg_getpalette*

모든 챠트 그래픽 팔레트에 대한 현재의 색깔과 선 유형, 채움 패턴, 도표 문자 등을 구한다.

_pg_getstyleset*

현재 사용중인 양식의 내용을 구한다.

_pg_hlabelchart*

화면에 텍스트를 수평으로 출력한다.

_pg_initchart*

챠트 그래픽 라이브러리를 초기화시킨다.

_pg_resetpalette*

색상이나 선 유형, 채움 패턴, 도표 문자 등의 값을 현재의 화면 모드에 대한 기본 값 으로 재설정 한다.

_pg_getstyleset*

현재 사용중인 양식의 내용을 구한다.

_pg_hlabelchart*

화면에 텍스트를 수평으로 출력한다.

_pg_initchart*

챠트 그래픽 라이브러리를 초기화시킨다.

_pg_resetpalette*

색상이나 선 유형, 채움 패턴, 도표 문자 등의 값을 현재의 화면 모드에 대한 기본 값으로 재설정 한다.

_pg_resetstyleset*

현재 사용중인 양식의 내용을 현재의 화면 모드에 대한 기본 값으로 설정한다.

_pg_setchartdef*

특정 문자에 대한 8×8 픽셀 비트맵을 얻는다.

_pg_setpalette*

현재의 기본 색상을 설정한다.

_pg_setstyleset*

현재 사용중인 양식의 내용을 설정한다.

_pg_vlabelchart*

화면에 텍스트를 수직으로 출력한다.

_pie*

파이 모양을 그린다.

pieslice

파이 모양을 그린다.

_pie_w*

파이 모양을 그린다.

_pie_wxy*

파이 모양을 그린다.

_polygon*

다각형을 그린다.

_polygon_w*

다각형을 그린다.

_polygon_wxy*

다각형을 그린다.

_putimage(putimage)

메모리에 있는 이미지를 화면에 나타낸다.

putpixel

특정 위치에 점을 찍는다.

_rectangle(rectangle)

사각형을 그린다.

_rectangle_w*

사각형을 그린다.

_rectangle_wxy*

사각형을 그린다.

registerbgidriver

특정 구동 프로그램을 등록하여 사용한다.

registerbgifont

특정 폰트를 등록한다.

_registerfonts*

폰트 라이브러리를 초기화시킨다.

_remapallpalette*

현재 사용중인 팔레트의 모든 컬러 색인을 변경한다.

_remappalette*

현재 사용중인 팔레트의 한 컬러 색인을 변경한다.

restorecrtmode

initgraph에서 설정했던 값들로 화면 모드를 복구한다.

_scrolltextwindow*

현재의 텍스트 윈도우를 위, 아래로 스크롤한다.

sector

타원의 한 부분을 그린다.

_selectpalette*

미리 정의된 팔레트를 선택한다.

_setactivepage (setactivepage)

이미지를 쓰기 위한 페이지 영역으로 사용할 메모리를 설정한다.

setallpalette

모든 팔레트의 색깔을 변경한다.

setaspectratio

x축과 y축의 비율을 설정한다.

_setbkcolor(setbkcolor)

현재 사용중인 배경색을 구한다.

_setcliprgn*

그래픽 출력을 화면의 특정 영역에만 나오도록 제한한다.

_setcolor(setcolor)

현재의 색깔을 지정한다.

_setcursortype

커서의 모양을 설정한다.

_setfillmask*

현재의 fill mask를 설정한다.

setfillpattern

사용자가 정의한 fill pattern을 선택한다.

setfillstyle

fill pattern과 색깔을 설정한다.

_sefont*

주어진 속성을 만족하는 폰트를 찾아서, 이를 기본 폰트로 사용한다.

setgraphbufsize

내부 그래픽 버퍼의 크기를 변경한다.

setgraphmode

그래픽 모드를 변경하고 화면을 클리어한다.

_setgtextvector*

폰트의 경사 방향을 설정한다.

_setlinestyle(setlinestyle)

현재의 기본 선 유형을 설정한다.

setpalette

한 팔레트의 색상을 변경한다.

_setpixel*

한 픽셀의 색깔을 설정한다.

_setpixel_w*

한 픽셀의 색깔을 설정한다.

setgbpalette

IBM 8514에 대한 색상을 정의한다.

_settextcolor*

현재의 텍스트 색깔을 설정한다.

_settextcursor*

현재의 커서 속성을 설정한다(텍스트 모드에서만 사용 가능).

settextjustify

그래픽 함수에서 텍스트 출력시 텍스트의 정렬 형태를 설정한다.

_settextposition*

현재의 텍스트 위치를 재배정한다.

_settextrows*

텍스트 행의 수를 설정한다.

settextstyle

출력될 텍스트의 유형을 설정한다.

_settextwindow*

현재의 텍스트 윈도우를 설정한다.

setusercharsize

storked 폰트의 경우 문자의 폭과 높이를 변경한다.

_setvideomode*

화면의 동작 모드를 설정한다.

_setvideomoderows*

화면의 동작 모드와 텍스트 행의 수를 결정한다.

_setvieworg*

view 좌표의 원점을 설정한다.

_setviewport (setviewport)

그래픽 출력을 화면상의 특정영역으로 제한하고 view 좌표의 원점을 그 영역의 왼쪽 위 꼭지점으로 설정한다.

_setvisualpage (setvisualpage)

visual 페이지로 사용할 메모리 영역을 설정한다.

_setwindow*

부동 소수점 값을 갖는 window 좌표계를 설정한다.

_setwritemode (setwritemode)

선을 그릴 때 사용할 기본 논리적 쓰기 모드를 설정한다.

textheight

그래픽 스트링의 높이를 픽셀 단위로 계산한다.

textwidth

그래픽 스트링의 폭을 픽셀 단위로 계산한다.

_unregisterfonts*

_registerfonts가 사용한 메모리를 반납한다.

_wrapon*

줄바꿈 상태를 설정한다.


8. 시스템 호출 함수들


시스템 호출 함수들은 DOS의 시스템 호출을 사용할 수 있도록 해주는 함수들로, 이를 사용하면 인터럽트를 통해 BIOS 루틴을 호출할 수 있다. 이들 함수는 DOS에서만 사용할 수 있고 다른 운영체제에서는 사용할 수 없으므로 호환성이 필요한 프로그램에서는 사용하지 말아야 한다.

absread

절대적 위치에 있는 디스크 섹터의 값을 읽는다.

abswrite

절대적 위치에 있는 디스크 섹터에 값을 쓴다.

_bdos(bdos)

DX AL 레지스터의 값만 사용하여 DOS 시스템 호출을 수행한다.

bdosptr

DOS 시스템 호출을 직접 접근하다.

bioscom

직렬 입출력을 수행한다.

biosdisk

INT 0x13을 사용하여 디스크에 대한 서비스를 요청한다.

_bios_disk

INT 0x13을 사용하여 디스크에 대한 서비스를 요청한다.

biosequip

INT 0x11을 사용하여 BIOS로부터 장비 목록을 얻는다.

_bios_equiplist

INT 0x11을 사용하여 BIOS로부터 장비 목록을 얻는다.

bioskey

INT 0x16을 사용하여 키보드 서비스를 요청한다.

_bios_keybrd

INT 0x16을 사용하여 키보드 서비스를 요청한다.

biosmemory

INT 0x12를 사용하여 RAM 메모리의 크기를 구한다.

_bios_memsize

INT 0x12를 사용하여 사용가능한 메모리에 대한 정보를 얻는다.

biosprint

INT 0x17을 사용하여 프린터 출력 서비스를 수행한다.

_bios_printer

INT 0x17을 사용하여 프린터 출력 서비스를 수행한다.

_bios_serialcom

INT 0x14를 사용하여 직렬 통신에 대한 일을 수행한다.

biostime

INT 0x1A를 사용하여 시스템 클럭을 사용한다.

_bios_timeofday

INT 0x1A를 사용하여 시스템 클럭에 대해 접근한다.

_chain_intr

한 인터럽트 처리 루틴을 다른 것과 연결한다.

country

특정 나라에만 관계된 정보의 내용을 얻는다.

ctrlbrk

<CTRL+BREAK>의 처리 루틴을 세팅한다.

_disable(disable)

인터럽트를 비활성화 시킨다.

_dos_allocmem

DOS 시스템 호출 0x48을 사용하여 한 블록의 메모리를 할당받는다.

_dos_close

DOS 시스템 호출 0x3E을 사용하여 파일을 닫는다.

_dos_commit*

DOS 시스템 호출 0x68을 사용하여 파일의 내용을 디스크에 쓴다.

_dos_creat

DOS 시스템 호출 0x3C를 사용하여 새 파일을 만든다. 그 이름의 파일이 이미 있을 경우에는 지워지게 된다.

_dos_creatnew

DOS 시스템 호출 0x5B를 사용하여 새 파일을 만든다. 그 이름의 파일이 이미 있을 경우에는 에러가 발생한다.

_dos_findfirst

DOS 시스템 호출 0x4E를 사용하여 주어진 이름을 갖는 첫 번째 파일을 찾는다.

_dos_findnext

DOS 시스템 호출 0x4F를 사용하여 주어진 이름을 갖는 다음번 파일을 찾는다.

_dos_freemem

DOS 시스템 호출 0x49를 사용하여 사용한 메모리 블록을 반납한다.

_dos_getdate

DOS 시스템 호출 0x2A를 사용하여 시스템의 날짜를 얻는다.

_dos_getdiskfree

DOS 시스템 호출 0x36을 사용하여 디스크에 대한 정보를 얻는다.

_dos_getdrive

DOS 시스템 호출 0x19를 사용하여 현제의 기본 드라이브를 얻는다.

_dos_getfileattr

DOS 시스템 호출 0x43을 사용하여 한 파일이나 디렉토리의 현재의 속성을 얻는다.

_dos_getftime

DOS 시스템 호출 0x57을 사용하여 파일이 가장최근에 변경된 시간과 날짜를 얻는다.

_dos_gettime

DOS 시스템 호출 0x2C를 사용하여 현재의 시스템 시간을 구한다.

_dos_getvect

DOS 시스템 호출 0x35를 사용하여 특정 인터럽트 벡터의 현재의 값을 구한다.

_dos_keep

DOS 시스템 호출 0x31을 사용하여 메모리 상주프로그램(TSR 프로그램)을 설치한다.

_dos_open

DOS 시스템 호출 0x3D를 사용하여 기존의 파일을 연다.

_dos_read

DOS 시스템 호출 0x3F를 사용하여 파일의 내용을 읽는다.

dos_setbloc

DOS 시스템 호출 0x4A를 사용하여 전에 할당받은 메모리 블록의 크기를 변경한다.

dos_setdate

DOS 시스템 호출 0x2B를 사용하여 시스템의 날짜를 설정한다.

dos_setdriv

DOS 시스템 호출 0x0E를 사용하여 기본 디스크 드라이브를 설정한다.

dos_setfilea

DOS 시스템 호출 0x43을 사용하여 파일의 속성을 설정한다.

dos_setftim

DOS 시스템 호출 0x57을 사용하여 파일의 변경날짜와 시간을 설정한다.

dos_settim

DOS 시스템 호출 0x2D를 사용하여 시스템의 시간을 설정한다.

dos_setvect

DOS 시스템 호출 0x25를 사용하여 특정 인터럽트 벡터의 새 값을 세팅한다.

_dos_write

DOS 시스템 호출 0x40을 사용하여 파일에 출력을 내보낸다.

_dosexterr(dosexterr)

DOS 시스템 호출 0x59를 사용하여 더 자세한 에러 정보를 얻는다.

__emit__

바로 기계코드를 사용할 수 있게 해준다.

_enable(enable)

인터럽트를 활성화시킨다.

_FP_OFF(FP_OFF)

far포인터의 offset 부분을 얻는다.

_FP_SEG(FP_SEG)

far포인터의 segment 부분을 얻는다.

freemem

이전에 할당받은 DOS 메모리 블록을 반납한다.

geninterrupt

S/W 인터럽트를 발생시킨다.

getcbrk

<Ctrl+Break> 세팅값을 얻는다.

getdfree

디스크의 빈공간의 양을 얻는다.

getdta

DATA(Disk Transfer Address)의 값을 구한다.

getfat

주어진 드라이브에 대한 FAT의 값을 얻는다.

getfatd

현재의 드라이브에 대한 FAT의 값을 얻는다.

getpsp

프로그램 세그먼트 prefix를 구한다.

getvect

인터럽트 벡터의 값을 구한다.

getverify

DOS의 쓰기 검증 상태를 조사한다.

harderr

하드웨어 에러 처리기를 설정한다.

_harderr

하드웨어 에러 처리기를 설정한다.

hardresume

하드웨어 에러 발생시 DOS로 돌아가도록 한다.

_hardresume

하드웨어 에러 발생시 DOS로 돌아가도록 한다.

hardretn

하드웨어 에러 발생시 응용프로그램으로 돌아가도록 한다.

_hardretn

하드웨어 에러 발생시 응용프로그램으로 돌아가도록 한다.

_inp(inp)

하드웨어 포트로부터 한 바이트를 읽어 들인다.

_inpw(inpw)

하드웨어 포트로부터 한 워드를 읽어 들인다.

inport

하드웨어 포트로부터 한 워드를 읽어 들인다.

inportb

하드웨어 포트로부터 한 바이트를 읽어 들인다.

_int86(int86)

DOS 인터럽트를 호출한다.

_int86x(int86x)

DOS 인터럽트를 호출한다.

_intdos(intdos)

DX AL레지스터를 사용하지 않고 DOS 시스템호출을 수행한다.

_intdosx(intdosx)

DX AL레지스터는 사용하지 않고 세그먼트 레지스터의 값을 사용하여 DOS 시스템 호출을 수행한다.

intr

8086 소프트웨어 인터럽트를 발생시킨다.

keep

DOS 시스템 호출 0x31을 사용하여 메모리 상주 프로그램(TSR 프로그램)을 설치한다.

MK_FP

far 포인터로 만든다.

_outp(outp)

하드웨어 포트에 한 바이트를 출력한다.

_outpw(outpw)

하드웨어 포트에 한 워드를 출력한다.

outport

하드웨어 포트에 한 워드를 출력한다.

outportb

하드웨어 포트에 한 바이트를 출력한다.

parsfnm

파일 이름을 파싱한다.

peek

특정 주소의 메모리에 있는 워드의 값을 구한다.

peekb

특정 주소의 메모리에 있는 바이트의 값을 구한다.

poke

특정 주소에 정수 값을 저장한다.

pokeb

특정 주소에 바이트 값을 저장한다.

randbrd

특정 수의 레코드들을 DOS 시스템 호출 0x27을 사용하여 디스크에 직접 읽어들인다.

randbwr

특정 수의 레코드들을 DOS 시스템 호출 0x28을 사용하여 디스크에 직접쓴다.

_segread(segread)

setcbrk 세그먼트 레지스터들의 현재의 값을 얻는다. <Ctrl+Break>의 조사상태를 설정한다.

setdate

DOS 시스템 호출 0x2B를 사용하여 시스템의 날짜를 설정한다.

setdisk

DOS 시스템 호출 0x0E를 사용하여 현재의 드라이브를 설정한다.

setdta

DOS DTA(Disk Transfer Address) 값을 변경한다.

setvect

인터럽트 벡토의 값을 설정한다.

setverify

DOS에서 쓰기 검증 여부를 할 것이지를 설정한다.

sleep

특정 시간 동안 수행을 잠시 중단한다.

_unlink(unlink)

파일을 삭제한다.

 

9 데이터 변환과 분류 함수들

데이터 변환 함수들은 한 데이터 유형의 값을 다른 데이터 유형의 값으로 변환해 주는 역할을 한다. 예를 들어 정수값을 스티링으로 변환하는 함수가 이에 속한다. 반면에 데이터 분류 함수들은 주어진 데이터가 어떤 범주에 속하는 지를 판단하는 역할을 한다. 이들 함수는 다른 함수에 비해 매우 간단한 것들이 많기 때문에 함수가 아닌 매크로 형태로 정의된 것도 있으므로 사용할 때 알맞은 것을 골라 쓰는 것이 필요하다.

abs

주어진 정수 값의 절대 값을 구한다.

atof

스트링을 float 형태로 변환한다.

atoi

스트링을 int 형태로 변환한다.

atol

스트링을 long int 형태로 변환한다.

_atold

스트링을 long double 형태로 변환한다.

_ecvt(ecvt)

double 값을 스트링으로 변환한다.

_fcvt(fcvt)

float 값을 스트링으로 변환한다.

_gcvt(gcvt)

float 값을 스트링으로 변환하고 이를 버퍼에 저장한다.

isalnum

주어진 문자가 알파벳이나 숫자인지를 조사한다.

isalpha

주어진 문자가 알파벳인지 조사한다.

__isascii(isascii)

주어진 문자가 ASCII 문자인지 조사한다.

iscntrl

주어진 문자가 제어문자인지 조사한다.

__iscsym*

주어진 문자가 알파벳이나 밑줄 문자(_)또는 숫자인자 조사한다.

__iscsymf*

주어진 문자가 알파벳이나 밑줄문자인지 조사한다.

isdigit

주어진 문자가 10진수인지 조사한다.

isgraph

인쇄되어 나올 수 있는 문자인지 조사한다.

islower

소문자인지 조사한다.

isprint

인쇄가 가능한지 조사한다.

ispunct

구두점 문자인지 조사한다.

isspace

여백 문자인지 조사한다.

isupper

대문자인지 조사한다.

isxdigit

주어진 문자가 16진수인지 조사한다.

_itoa(itoa)

int값을 스트링으로 변환한다.

labs

long 값의 절대 값을 구한다.

_ltoa(ltoa)

long 값을 스트링으로 변환한다.

_strdate

현재 날짜를 스트링으로 변환한다.

_strtime

현재 시간을 스트링으로 변환한다.

strtod

스트링을 double 값으로 변환한다.

strtol

스트링을 long 값으로 변환한다.

_strtold

스트링을 long double 값으로 변환한다.

strtoul

스트링을 unsigned long 값으로 변환한다.

__toascii(toascii)

주어진 문자를 ASCII 코드 형태로 변환한다.

tolower

주어진 문자가 대문자면 소문자로 변환한다.

_tolower

주어진 문자를 무조건 소문자로 변환한다.

toupper

주어진 문자가 소문자면 대문자로 변환한다.

_toupper

주어진 문자를 무조건 대문자로 변환한다.

_ultoa(ultoa)

unsigned long 값을 스트링으로 변환한다.


10 프로세스 제어 함수들

프로세스란 수행중인 하나의 프로그램을 의미한당. 프로세스 제어 함수들이란 새로운 프로그램을 수행하거나 수행중인 프로그램을 중단하는 역할을 한다. 이는 운영체제의 지원을 받아야 하기 때문에 DOS에서 수행되는 MSC와 BC는 Unix 보다 적은 수의 함수들을 제공하고 있다.

abort

프로세스의 수행을 중단한다.

assert

에러 메시지를 출력하고 프로세스의 수행을 중단한다.

atexit

프로세스 중단시 수행할 루틴을 등록한다.

_cexit

exit를 불렀을 때 수행되는 일들을 한다(그러나 프로세스가 중단되지는 않는다)

_c_exit

_exit를 불렀을때 수행되는 일들을 한다.(그러나 프로세스가 중단되지는 않는다.)

_execl(execl)

다른 프로세스를 주어진 인자 목록을 가용하여 수행한다.

_execle(execle)

다른 프로세스를 주어진 인자 목록과 환경 변수의 값들을 사용하여 수행한다.

_execlp(execlp)

PATH 변수의 값과 인자 목록을 사용하여 다른 프로세스를 수행한다.

_execlpe(execlpe)

PATH 변수의 값과 인자 목록 그리고 환경변수의 값들을 사용하여 다른 프로세스를 수행한다.

_execv(execv)

인자 배열을 사용하여 다른 프로세스를 수행한다.

_execve(execve)

다른 프로세스를 인자 배열과 환경 변수들을 사용하여 수행한다.

_execvp(execvp)

PATH 변수의 값과 인자 배열을 사용하여 다른 프로세스를 수행한다.

_execvpe(execvpe)

PATH 변수와 환경 변수 그리고 인자 배열을 사용하여 다를 프로세스를 수행한다.

exit

그 프로세스와 관계된 버퍼의 내용을 다지우고 열려진 파일들을 닫은 후 프로세스를 종료한다.

_exit

버퍼의 내용을 지우지 않고 그냥 프로세스를 종료한다.

_fatexit*

프로세스를 종료할 때 호출할 함수를 정의한다.

_fonexit*

프로세스를 종료할 때 호출할 함수를 정의한다.

getenv

환경 변수의 값을 얻는다.

_getpid(getpid)

프로세스 번호를 얻는다.

longjmp

setjmp에 의해 지정된 곳으로 이동하여 그 위치부터 프로그램을 다시 수행한다.

_matherr(matherr)

수학 라이브러리에서 에러가 발생했을 때수행할 함수를 정의한다.

_matherrl

long double 수학 함수를 사용시 에러가 발생했을때 수행할 함수를 정의한다.

_onexit*

프로세스가 종료될 때 수행할 함수를 정의한다.

perror

에러 메시지를 출력한다.

_putenv(putenv)

환경 변수의 값을 추가하거나 변경한다.

raise

프로세스에 신호를 보낸다.

setjmp

longjmp로 이동할 곳을 정의한다.

signal

인터럽트 신호를 제어한다.

_spawnl(spawnl)

인자 목록을 사용하여 다른 프로세스를 수행한다.

_spawnle(spawnle)

인자 목록과 환경 변수를 사용하여 다른 프로세스를 수행한다.

_spawnlp(spawnlp)

PATH 변수와 인자 목록을 사용하여 다른 프로세스를 수행한다.

_spawnlpe(spawnlpe)

PATH 변수와 환경 변수,인자 목록을 사용하여 다른 프로세스를 수행한다.

_spawnv(spawnv)

인자 배열을 사용하여 다를 프로세스를 수행한다.

_spawnve(spawnve)

인자 배열과 환경 변수를 사용하여 다른 프로세스를 수행한다.

_spawnvp(spawnvp)

PATH 변수와 인자 배열을 사용하여 다른 프로세스를 수행한다.

_spawnvpe(spawnvpe)

PATH 변수와 인자 배열 그리고 환경 변수들을 사용하영 다른 프로세스를 수행한다.

system

DOS 명령을 수행한다.

 

11 윈도우 함수들

윈도우 함수들을 사용하면 DOS에서 텍스트 형태의 윈도우를 열어 사용할 수 있다. 이는 윈도우즈와 같은 그래픽형태는 아니지만 매우 유용하게 사용할 수 있는데,Unix의 스크린 라이브러리에 해당된다고 생각하면 된다. 이도 역시 표준 함수가 아니기 때문에 MSC와 BC가 서로 다른 형태를 취하고 있으며,호환성이 없으므로 주의해야한다.

clreol

텍스트 윈도우 내에서 현재의 커서 위치부터 그 줄 끝까지를 모두 지운다.

clrscr

텍스트 윈도우의 내용을 지우고 커서가 맨 위 왼쪽에 가게 한다.

delline

텍스트 윈도우 내의 한 줄의 내용을 지운다.

_fwopen*

새 윈도우를 하나 연다.

gettext

텍스트 윈도우의 한 부분에 있는 내용을 메모리에 저장한다.

gettextinfo

현재의 텍스트 비디오 모드에 대한 정보를 얻는다.

gotoxy

텍스트 윈도우 내의 특정한 위치로 이동한다.

highvideo

고밀도(heigh intensity)문자를 선택한다.

insline

텍스트 윈도우 내에 한 빈줄을 삽입한다.

lowvideo

저밀도(low intensity) 문자를 선택한다.

movetext

화면상의 한 부분에 있는 내용을 화면의 다른 부분으로 그대로 복사한다.

normvideo

중밀도(norm intensity) 문자를 선택한다.

puttext

메모리상에 있는 문자들을 화면의 특정부분에 나타나게 한다.

_setcursotype

커서의 모양을 선택한다.

textattr

텍스트의 속성을 설정한다.

textbackground

텍스트의 배경색을 설정한다.

textcolor

텍스트의 색상을 설정한다.

textmode

특정 텍스트 모드를 선택한다.

_wabout*

About 대화 상자에 나타날 스트링을 정의한다.

_wclose*

윈도우를 닫는다.

_wgetexit*

윈도우가 닫힐때 해야 할 일들을 얻는다.

_wgetfocus*

현재 입력을 받아들이고 있는 윈도우의 핸들을 얻는다.

_wgetscreenbuf*

윈도우의 스크린 버퍼의 크기를 구한다.

_wgetsize*

윈도우의 현재 크기와 화면상의 현재 위치를 구한다.

wherex

윈도우 내에서 현재의 x 좌표의 값을 구한다.

wherey

윈도우 내에서 현재의 y 좌표의 값을 구한다.

window

새로운 윈도우를 하나 정의한다.

_wmenuclick*

메뉴명령을 선택한다.

_wopen*

새 윈도우를 하나 연다.

_wsetexit*

윈도우가 닫힐 때 해야 할 일을 설정한다.

_wsetfocus*

특정 윈도우를 활성화시켜 입력을 받아들이도록 한다.

_wsetscreenbuf*

윈도우의 스크린 버퍼의 크기를 설정한다.

_wsetsize*

윈도우의 크기와 화면상의 위치를 설정한다.

_wyield*

윈도우즈에세 프로세스 시간을 할당하여 큐의 내용을 처리하도록 한다.


12 국제화 함수들

국제화 함수들은 여러 나라나 지역에서 사용할 수 있는 프로그램을 작성하도록 도와주는 역할을 한다. 즉, 각 나라별로 서로 다르게 사용하는 여러 항목들, 예를 들어 숫자의 포맷이나 화폐 단위,날짜나 시간의 포맷에 대한 정보를 지정하여 사용할 수 잉ㅆ다. 다음 함수들이 이에 속한다.

localeconv

현재 설정된 지역 정보에 대한 값들을 얻는다.

_mblen(mblen)

다중 바이트 문자인 경우 한 문자가 차지하는 바이트의 수를 현재의 지역 정보를 바탕으로 구한다.

mbstowcs

다중 바이트 문자 스트링을 wide 문자 스트링으로 변환한다.

mbtowc

다중 바이트 문자를 wide 문자로 변환한다.

setlocale

지역 정보에 대한 값들을 설정한다.

strcoll

지역 정보에 대한 값들을 바탕으로 스트링을 비교한다.

strftime

지역 정보를 바탕으로 한 날짜와 시간을 스트링형태로 구한다.

strxfrm

스트링을 지역 정보에 맞게 변환한다.

wcstombs

wide 문자 스트링을 다중 바이트 스트링으로 변환한다.

wctomb

wide 문자를 다중 바이트 문자로 변환한다.


13 에러 처리 함수들

에러 처리 함수들은 에러가 발생했을 때 이에 대한 대처 방법을 지정하는 역할을 하는 것으로, 다음과 같은함수들이 있다.

assert

특정 조건을 텍스트하여 이것이 만족되지 않으면 화면에 에러 메시지를 출력하고 프로그램의 수행을 중단시킨다.

_matherr(matherr)

수학 라이브러리 함수에서 에러가 발생했을 때 해야 할 일을 설정한다.

_matherrl

수학 라이브러리 함수 가운데 double 계산을 하다가 에러가 발생했을 때 해야 할 일을 설정한다.

perror

에러가 발생했을 때 시스템에서 제공하는 에러 메시지를 출력한다.


14 소리 처리 함수들


소리 처리 함수들은 특정 주파수의 소리를 스피커를 통해 발생시키는 역할을 한다. 이를 이용하면 간단한 소리를 만들 수 있는데,다음 함수들이 이에 속한다.

delay

sec 동안 프로그램의 수행을 중단시킨다.

nosound

스피커에 소리가 나지 않도록 한다.

sound

특정 주파수의 소리가 스피커를 통해 발생하도록 한다.


15 코드 이동 함수들


코드 이동 함수들은 프로그램의 특정 위치로 바로 이동하여 수행할 수 있도록 하는 것으로 goto문과 달리 함수 바깥쪽의 다른 함수로도 바로 이동이 가능한 것이 특징이다. 여기에는 다음과 같이 두 함수가 있다.

longjmp

setjmp에 의해 설정한 곳으로 바로 이동하여 그 부분부터 수행하도록 한다.

setjmp

longjmp에 의개 갈 곳을 설정한다.


16 검색과 정렬 함수들

검색과 정렬 함수는 이진 검색(binary search)이나 선형 검색(linear search),quick 정렬 등을 할 수 있게 해주는 함수들로,다음과 같은 함수들이 있다.

bsearch

이진 검색(bianry search)을 실시한다.

_lfind(lfind)

특정 값을 선형 검색(linear search) 방법을ㅇ 사용하여 찾는다.

_lsearch(lsearch)

특정 값을 선형 검색 방법을 사용하여 찾고,없으면 이를 새로 추가한다.

qsort

quick 정렬을 수행한다.


17 가변 인자 함수들

가변 인자 함수들은 매크로로 가변 인자를 보다 쉽게 사용할 수 있도록 도와주는 역할을 한다.

이에는 다음과 같은 것들이 있다.

va_arg

가변 인자로 넘어온 값들을 목록에서 꺼낸다.

va_end

포인터를 reset하여 가변 인자를 더 이상 사용할 수 없게 만든다.

va_start

포인터를 맨 처음으로 이동하여 가변 인자를 맨 처음부터 사용할 수 있도록 한다.

 

반응형

'Programming > C' 카테고리의 다른 글

16. C언어_매크로  (0) 2011.06.23
gcc 에러_as: unrecognized option `-Qy'  (0) 2011.05.09
gcc 컴파일 에러  (0) 2011.05.04
Library 패스 잡기  (0) 2011.05.03
15.C언어_출력형식  (0) 2011.04.19

+ Recent posts