[42Seoul/minishell] 사용 가능한 외부 함수 (7)

yebeen·2022년 8월 10일
0

42-Seoul/minishell

목록 보기
8/9
post-thumbnail
사용 가능한 외부 함수
readline, rl_on_new_line, rl_replace_line, rl_redisplay, add_history, printf, malloc, free, write, open, read, close, pipe, fork, wait, waitpid, wait3, wait4, unlink, execve, dup, dup2, exit, signal, kill, getcwd, chdir, stat, lstat, fstat, opendir, readdir, closedir, strerror, errno, isatty, ttyname, ttyslot, ioctl, getenv, tcsetattr, tcgetattr, tgetent, tgetflag, tgetnum, tgetstr, tgoto, tputs

getenv()

name에 해당하는 환경 변수의 값에 대한 문자열을 반환합니다.

#include <stdib.h>

char *getenv(const char *name);

환경 변수에 해당하는 값을 찾지 못하거나 문제가 생겼을 경우 NULL을 반환합니다.


tcsetattr()

파일 디스크립터를 인자로 받습니다.

#inlcude <termios.h>

int tcsetattr(int fd, int action, const struct termios *t);

함수 수행에 성공하면 0을 그렇지 않으면 -1을 반환합니다.

  • action
    • TCSANOW : termios 구조체의 값으로 즉시 변경
    • TCSADRAIN : 파일 디스크립터에 대해 모든 쓰기 작업이 이뤄진 이후 변경
    • TCSAFLUSH : 파일 디스크립터에 대해 모든 쓰기 작업이 이뤄진 이후 변경하며 처리되고 있는 입력 내용을 지움
    • TCSASOFT : termois 구조체 내의 c_cflag, c_ispeed, c_ospeed의 값들이 무시
  • termios
    • termios 구조체
      struct termios {
        tcflag_t c_iflag;      /* input modes */
        tcflag_t c_oflag;      /* output modes */
        tcflag_t c_cflag;      /* control modes */
        tcflag_t c_lflag;      /* local modes */
        cc_t     c_cc[NCCS];   /* special characters */
      }

tcgetattr()

기록할 termios 구조체를 포인터 타입으로 할당합니다. 함수의 수행 결과를 알 수 있습니다.

#include <termios.h>

int tcgetattr(int fildes, struct termios *termios_p);

함수 수행에 성공하면 0을 그렇지 않으면 -1을 반환합니다.


tgetent()

TermCap의 쿼리를 수행할 수 있도록 만드는 루틴입니다. 일반적으로 name에 할당하는 값은 TERM 환경 변수로 할당된 터미널 타입을 이용합니다.

#include <termios.h>

int tgetent(char *bp, const char *name);

함수 수행에 성공하면 1을 반환하고 DB가 발견되었지만 TERM을 위한 개체가 없을 경우 0을 반환합니다. 그 외 에러의 경우 -1을 반환합니다.


tgetflag()

쿼리로 사용할 이름을 인자로 받습니다.

#include <termios.h>

int tgetflag(char *id);

플래그를 얻을 수 있는 쿼리의 경우 1을 그렇지 않을 경우 0을 반환합니다.


tgetnum()

쿼리로 사용할 이름을 인자로 받습니다.

#include <termios.h>

int tgetnum(char *id);

함수 수행에 성공하면 그 값을 반환하고 그렇지 않으면 -1을 반환합니다.


tgetstr()

쿼리로 사용할 이름을 인자로 받습니다. areaBuffer Pointer를 의미하는데 일반적으로 NULL값을 줍니다.

#include <termios.h>

char *tgetstr(char *id, char **area);

쿼리에 해당하는 Escape Sequence를 얻을 수 있다면 그 값을 반환하고 그렇지 않을 경우 NULL을 반환합니다.


tgoto()

매개변수를 지정된 기능으로 인스턴스화 합니다. 출력은 tputs로 전달됩니다.

#include <termios.h>

char *tgoto(const char *cap, int col, int row);

colrow를 고려한 Cursor MotionEscape Sequence를 반환합니다. 함수 수행에 실패하면 NULL을 반환합니다.


tputs()

Escape Sequence에 대한 터미널 출력 결과를 내는 루틴입니다. tgetstr 또는 tgoto를 통해 얻은 값을 str인자로 받습니다. affcnt의 경우 영향을 끼칠 줄의 수를 나타나는데, 1로 주는 것이 일반적입니다. putcASCII 문자 값을 인자로 받아 표준 출력의 쓰기 작업으로 터미널에 ASCII 문자 값을 출력해주는 함수입니다.

#include <termios.h>

int tputs(const char *str, int affcnt, int (*putc)(int));

문제 없이 수행되면 0을 그렇지 않으면 -1을 반환한다.



참고

profile
🐣🐥

0개의 댓글