사용 가능한 외부 함수 |
---|
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 |
하드 링크를 끊는데 이용합니다. 하드 링크의 이름을 삭제하면 inode
를 참조하고 있는 하나의 하드 링크를 끊어 링크의 개수를 하나 줄입니다. path
에 명시된 하드 링크는 삭제가 되지만 해당 inode
를 참조하고 있는 모든 하드 링크가 지워지는 것은 아니기 때문에 그 파일의 하드 링크가 여러 개라면 여전히 그 파일은 존재하게 됩니다.
#include <unistd.h>
int unlink(const char *path);
정상적으로 하드 링크를 끊으면 0
을 그렇지 않으면 -1
을 반환합니다.
하드 링크의 참조 개수가 0
이 되면 실제 파일의 내용이 저장되어 있는 disk space
를 free()
하여 OS
가 다른 파일을 위해서 사용할 수 있도록 합니다.
`open`으로 파일이 열린 상태에서 `unlink`를 호출하여 참조 개수가 0이 되어도 파일 이름 등의 정보는 삭제되지만 `disk space`는 해제되지 않음
#include <unistd.h>
int execve(const char *file, char * const *argv, char * const *envp);
인자로 받은 파일에 대해서 실행하고 정상 동작할 경우 0
을 문제가 발생할 경우 -1
을 반환합니다.
int execl(const char *path, const char *arg0, ..., const char *argn, (char *)0);
int execv(const char *path, char *const argv[]);
int execle(const char *path, const char *arg0, ..., const char *argn, (char *)0, char *const envp[]);
int execve(const char *path, char *const argv[], char *const envp[]);
int execlp(const char *file, const char *arg0, ... const char *argn, (char *)0);
int execv(const char *file, char *const argv[]);
PATH
의 환경에 등록된 디렉터리의 파일들을 실행하기 때문에 명령어를 전체 경로가 아닌 명령어만 인자 값으로 넘겨도 됩니다.envp
환경변수에 등록된 모든 디렉터리의 파일들을 실행하기 때문에 전체 경로를 인자 값으로 넘겨야 됩니다.fd라는 파일 디스크립터를 인자로 사용합니다.
#include <unistd.h>
int dub(int fd);
정상적으로 복제될 경우 파일 디스크립터의 값
을, 그렇지 않을 경우 -1
을 반환합니다.
dup2
는 dup
과 동작 방식은 동일합니다. 반환 값이 사용자가 사용하는 fd2
라는 값이 나올 수 있도록 fd
라는 인자를 사용하여 복제를 수행합니다.
#include <unistd.h>
int dup2(int fd, int fd2);
함수의 결과는 fd2
가 fd
가 가리키는 파일 디스크립터를 가리키게 됩니다. 문제가 발생하면 -1
을 반환합니다.
프로세스 내 파일 입출력 중인 것을 저장하며 프로세스를 종료합니다.
#include <stdlib.h>
정상 종료되면 0
(EXIT_SUCCESS
)을 1
(EXIT_FAILURE
)은 에러 메시지 종료입니다.