[pipex] 허용 함수 목록 - 1

아래의 함수들은 개인적으로 잘 모르는 함수들에 대해서만 정리하였다.

대개 이번 pipex 과제를 하면서 처음 본 함수들, 또는 기존에 사용해 본 적이 있지만 자세히는 공부해본 적 없는 함수들이다.

access

의존성

#include <unistd.h>

함수 원형

int access(const char *path, int mode);
  • 파일의 접근 권한을 체크하는 함수
  • *path : 파일의 경로를 포함한 이름
  • mode: 파일의 어떤 권한을 체크할 지 확인함
  • return
    • 성공 : 0
    • 실패 : -1, set errno

access 함수의 mode는 비트마스크 형태로, OR 연산을 통해 체크하고 싶은 권한을 동시에 확인할 수 있다.

실패하면 errno를 설정한다.


테스트 코드

실행 결과


open

의존성

#include <fcntl.h>

함수 원형

int open(const char *path, int oflag, ...);
  • 파일을 읽거나 쓰기 위해 열거나 생성하는 함수
  • *path : 파일의 경로를 포함한 이름
  • oflag: 파일 열기 옵션
    • O_CREAT: 파일이 없을 때 파일을 생성
    • O_RDONLY: 읽기 모드
    • O_WRONLY: 쓰기 모드
    • O_RDWR: 읽기 + 쓰기 모드
    • O_TRUNC: 파일이 이미 존재하면 파일의 내용을 전부 지우고 파일의 길이를 0으로 바꿈
  • ...: O_CREAT 옵션으로 새로운 파일이 만들어질 때 지정되는 파일 접근 권한
    • 비트마스크 형식이므로 chmod와 마찬가지로 0644와 같은 형태를 사용할 수 있음.
  • return
    • 성공 : 양의 정수
    • 실패 : -1, set errno

open 함수의 oflag는 비트마스크 형태로, OR 연산을 통해 옵션을 동시에 설정할 수 있다.

실패하면 errno를 설정한다.


테스트 코드

파일


실행 결과


unlink

의존성

#include <unistd.h>

함수 원형

int unlink(const char *path);
  • 파일을 삭제하는 함수
  • *path : 파일의 경로를 포함한 이름
  • return
    • 성공 : 0
    • 실패 : -1, set errno

테스트 코드

실행 결과


close

의존성

#include <unistd.h>

함수 원형

int close(int fildes);
  • 열려있는 파일의 사용을 종료하는 함수
  • fildes : 파일 디스크립터 (open의 return값)
  • return
    • 성공 : 0
    • 실패 : -1, set errno

waitpid

의존성

#include <sys/wait.h>

함수 원형

pid_t waitpid(pid_t pid, int *stat_loc, int options);
  • 프로세스의 종료 상태를 반환하는 함수
  • pid : 프로세스의 id
  • *stat_loc: 프로세스 상태
    • WIFEXITED: (IF EXITED) 프로세스가 제대로 종료되었으면 0이 아닌 수
    • WEXITSTATUS: (EXIT STATUS) 프로세스가 종료되었을 때 반환된 return값의 최하 8비트 평가
    • WIFSIGNALED: (IF SIGNALED) 자식 프로세스가 시그널에 의해 종료되었으면 true 반환
    • WTERMSIG: (TERM SIG) 자식 프로세스가 시그널에 의해 종료되었으면 signal number 반환
    • WIFSTOPPED: (IF STOPPED) 자식 프로세스가 정지된 상태라면 true 반환
    • WSTOPSIG: (STOP SIG) 자식 프로세스를 정지하도록 만든 signal number 반환
  • options: 추가 옵션
    • WNOHANG: 자식이 종료되지 않아도 바로 리턴되도록 하는 옵션
    • WUNTRACED: 종료된 프로세스 + 멈춘 프로세스까지 상태 정보를 얻어 오는 옵션
  • return
    • 성공 : pid
    • 실패 : -1
    • 그 외: 0

좋은 웹페이지 즐겨찾기