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

yebeen·2022년 8월 10일
0

42-Seoul/minishell

목록 보기
7/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

isatty()

파일 지정자가 터미널을 사용하는지 검사합니다.


#include <unistd.h>

int isatty(int desc);

터미널에 연결되어 있으면 1을 그렇지 않으면 0을 반환합니다.


ttyname()

터미널 이름을 반환합니다.

#include <unistd.h>

char *ttyname(int desc);

desc가 터미널을 참조하고 있다면 해당 터미널의 경로를 문자열로 반환하며 그렇지 않을 경우 NULL을 반환합니다.
static 형태로 할당되어 있어 덮으쓰기가 가능하며 별도의 free()를 해주지 않아도 됩니다.


ttyslot()

터미널에 대한 DB의 엔트리 index를 반환합니다.

#include <unistd.h>

int ttyslot(void);

문제가 생길 경우 이이용하고 있는 시스템에 따라 0 또는 -1이 반환됩니다.


ioctl()

장치에게 요청을 보낼 때 사용되는 함수이며 시스템 콜입니다. fd는 장치를 참조하는 파일 디스크립터가 되며 open을 통해 얻은 파일 디스크립터가 됩니다. (O_NONBLOCK 플래그 이용 권장)

#include <sys/ioctl.h>

int ioctl(int fd, unsigned long request, ... );

requestfd에 해당하는 장치에게 보낼 장치에서 제공 되는 코드입니다. 사용자 정의 하에 이요되는 경우에는 ioctl 함수의 반환 값을 이용할 수도 있습니다.
함수 원형에서 포인터 타입을 명시하지 않고 다양한 포인터 타입으로 이용될 수 있도록 가변인자를 사용합니다. 일반적으로 함수 호출 시 마지막 인자의 가변 인자에는 char * 타입으로 이용합니다.

함수 수행에 문제가 없다면 0(혹은 양수)을 그렇지 않을 경우 -1을 반환합니다.



참고

profile
🐣🐥

0개의 댓글