• C 내장함수 라이브러리
  • Zappy (IP: *.51.113.3)
    조회 수: 12224, 2006-10-25 11:23:20(2006-10-25)
  • C Interior Function Library

     

    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) -스트림(즉, 파일)에 대한 파일 핸들 값을 얻는다.
    _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)에 한 줄을 출력한다.

    _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 내에 있는 각 항목에 대한 정보를 검색한다.

     

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

     

     

    5. 파일 관리 함수들 


      파일 관리 함수들은 파일과 디렉토리의 상태를 조사하고, 속성을 변경하며 불필요한 파일이나 디렉토리를 제거할 수 있도록 해 주는 함수들로, 함수 대부분이 DIR.HDIRECT.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 형

댓글 0

번호 제목 닉네임 조회  등록일 
22 [레벨:18]Zappy 25176 2010-05-09
21 Zappy 12416 2007-03-25
20 Zappy 6069 2007-03-21
19 Zappy 10543 2007-03-21
18 Zappy 7955 2006-10-25
17 Zappy 9142 2006-10-25
Zappy 12224 2006-10-25
15 Zappy 7915 2006-10-25
14 Zappy 60142 2006-10-25
13 Zappy 9221 2006-10-25
XE Login