UNIX 시스템 함수 핵심 가이드
리눅스를 포함한 유닉스 시스템 상에서 C 언어로 프로그래밍 시, 사용가능한 시스템 함수들에 대한 설명을 담고 있다.
차후 프로그래밍을 할 때, 레퍼런스 역할을 할 것으로 기대한다.
시스템 함수 목록
여기서 다룰 시스템 함수 목록은 아래 표와 같다.
| 번호 | 함수명 | 설명 |
| 1 | abort | 열린 파일 닫고 프로세스 정보 저장 |
| 2 | accept | 클라이언트의 요청 수락(통신 관련 함수) |
| 3 | access | 파일에 대한 접근 권한 설정 |
| 4 | alarm | 알람 시그널 발생 |
| 5 | assert | 디버깅할 때 유용(조건에 따른 수행 가능) |
| 6 | atexit | 여러 개의 수행 함수 등록 |
| 7 | bind | 소켓 식별자와 네트워크 주소 연결(통신 관련 함수) |
| 8 | calloc | 메모리할당(객체 수 지정 가능) |
| 9 | cfsetispeed, cfsetospeed, cfgetispeed, cfgetospeed | 단말기 입출력 속도 설정 |
| 10 | chdir, fchdir | 디렉토리 변경 |
| 11 | chmod | 파일에 대한 접근 권한 변경(파일명 이용) |
| 12 | chroot | 최상위 디렉토리로 설정 |
| 13 | close | 파일 종료 |
| 14 | closedir | 디렉토리 종료 |
| 15 | connect | 클라이언트에 연결 요청(통신 관련 함수) |
| 16 | creat | 파일 생성 |
| 17 | difftime | 두 시간의 차 반환 |
| 18 | dup | 새로운 파일 지시자 생성 |
| 19 | execl | 실행 파일 수행 |
| 20 | execle | 실행 파일 수행(환경 변수를 인자로 넘겨줌) |
| 21 | execlp | 현재 디렉토리의 실행 파일 수행 |
| 22 | execv | 실행 파일 수행(배열에 인자 저장) |
| 23 | execve | 실행 파일 수행(환경 변수를 인자로 넘겨줌, 배열에 인자 저장) |
| 24 | execvp | 현재 디렉토리의 실행 파일 수행(배열에 인자 저장) |
| 25 | exit | 실행 파일 종료 |
| 26 | fchmod | 파일에 대한 접근 권한 변경(파일 지시자 이용) |
| 27 | fclose | 파일 스트림 종료 |
| 28 | fcntl | 파일에 대한 제어와 설정 |
| 29 | fdopen | 파일 지시자를 파일 스트림으로 변환 |
| 30 | feof | 파일 스트림 끝 검사 |
| 31 | ferror | 파일 스트림 에러 검사 |
| 32 | fflush | 출력 버퍼의 내용 파일 스트림에 저장 |
| 33 | fgets | 파일 스트림을 읽기(오버 플로우 처리 가능) |
| 34 | fopen | 파일 열기 |
| 35 | fork | 프로세스 생성 |
| 36 | fpathconf | 파일 지시자 제한값 반환(파일 지시자 이용) |
| 37 | fprintf | 파일 스트림의 형식화된 출력 |
| 38 | fputc | 파일 스트림에 문자 출력 |
| 39 | fputs | 파일 스트림에 문자열 출력(개행문자 첨가하지 않음) |
| 40 | fread, fwrite | 버퍼단위의 읽기와 쓰기 |
| 41 | free | 메모리 블록 해제 |
| 42 | fscanf | 파일 스트림을 특정한 형식으로 읽기 |
| 43 | fseek | 파일 스트림의 포인터 위치 변경 |
| 44 | fstat | 열린 파일의 정보 반환(파일 지시자 이용) |
| 45 | fstatvfs | 열린 파일의 시스템 정보 반환(파일 시스템 지시자 이용) |
| 46 | fsync | 지정 파일 디스크에 저장 |
| 47 | ftell | 파일 포인터의 위치 반환(바이트 단위) |
| 48 | ftok | 키값 적용 |
| 49 | ftw | 재귀적인 함수 적용 |
| 50 | getc | 파일 스트림에서 한 문자 읽기 |
| 51 | getchar | 한 문자 읽어 출력 |
| 52 | getcwd | 현재의 작업 디렉토리 출력 |
| 53 | getenv | 환경변수 값 변경 |
| 54 | gethostbyname, gethostbyaddr, inet_addr, inet_ntoa | 호스트 정보 변환 |
| 55 | gethostname, sethostname | 호스트명 획득과 변환 |
| 56 | getlogin, cuserid | 사용자 로그인명 변환 |
| 57 | getpgrp | 프로세스 그룹 ID 반환 |
| 58 | getpid, getppid, getuid, geteuid, getgid | 호출한 프로세스 ID 반환 |
| 59 | getpwent | 패스워드 정보 반환 |
| 60 | getpwnam, getpwuid | 사용자 찾기(사용자 로그인명과 ID 이용) |
| 61 | gets | 문자열 읽기 |
| 62 | getsid | 세션 ID 반환 |
| 63 | getsockopt, setsockopt | 열린 소켓 정보의 획득과 변환 |
| 64 | getutent, getutid | 파일 검색 |
| 65 | htons, htohs, htonl, ntohl | 데이터 저장 순서 관련 함수 |
| 66 | inet_addr | IP 주소 이진 형식으로 변환 |
| 67 | inet_aton | IP 주소 이진 형식으로 변환 |
| 68 | ioctl | 하드웨어의 시스템 파일 제어 |
| 69 | kill | 프로세스에 시그널 전송 |
| 70 | link | 링크 생성 |
| 71 | listen | 연결 요청 인자(통신 관련 함수) |
| 72 | localtime, ctime, gmtime | 시간 정보의 변환 |
| 73 | lseek | 파일 포인터 이동 |
| 74 | lstat | 파일 정보 반환(링크 파일은 링크 자체 정보 반환) |
| 75 | malloc | 동적 메모리 할당 |
| 76 | memset, memcpy, memmove, memcmp, memchr | 메모리 관련 함수 |
| 77 | mkdir | 디렉토리 생성 |
| 78 | mkfifo | FIFO 생성 |
| 79 | mmap | 메모리와 디스크 연결(대량의 데이터 입출력시 유용) |
| 80 | msgctl | 메시지 큐 제어 |
| 81 | msgget | 메시지 큐 생성 |
| 82 | msgrcv | 메시지 큐에서 메시지 읽기 |
| 83 | msgsnd | 메시지 큐에서 메시지 쓰기 |
| 84 | nice | 프로세스 진행시간 제어 |
| 85 | open | 파일 열기 |
| 86 | opendir | 디렉토리 열기 |
| 87 | pathconf, sysconf | 제한값 정보 반환 |
| 88 | pause | 프로세스의 실행 일시 중지 |
| 89 | perror | 시스템이 에러 자동으로 파악 |
| 90 | pipe | 파이프 생성 |
| 91 | popen | 명령어 수행(파이프 생성) |
| 92 | printf | 형식화된 출력 |
| 93 | putc | 파일 스트림에 문자 출력 |
| 94 | putchar | 하나의 문자 표준 출력 |
| 95 | puts | 문자열 표준 출력 |
| 96 | raise | 자신의 프로세스에 시그널 전달 |
| 97 | read | 파일 읽기 |
| 98 | readdir | 디렉토리 읽기 |
| 99 | readlink | 심볼릭 링크 읽기 |
| 100 | realloc | 메모리 블록의 크기 변경 |
| 101 | recv | 데이터 수신(연결 지향성 함수) |
| 102 | recvfrom | 데이터 수신(비연결 지향성 함수) |
| 103 | remove | 파일이나 디렉토리 삭제(ANCI C) |
| 104 | rename | 파일명 변경 |
| 105 | rewind | 파일 포인터를 맨 처음으로 되돌림 |
| 106 | rewinddir, telldir, seekdir | 디렉토리 포인터 관련 함수 |
| 107 | rmdir | 디렉토리 삭제(빈 디렉토리에만 적용) |
| 108 | scanf | 형식화된 입력 |
| 109 | select | 입력 다중화 |
| 110 | semctl | 세마포어 제어 |
| 111 | semget | 세마포어 집합의 식별자 반환 |
| 112 | semop | 세마포어 관련 연산 |
| 113 | send | 데이터 전송(연결 지향성 함수) |
| 114 | sendto | 데이터 전송(비연결 지향성 함수) |
| 115 | setbuf, setvbuf | 버퍼 관련 설정 |
| 116 | setenv | 환경 변수 지정(변수와 값 분리) |
| 117 | setpgid | 프로세스 그룹 ID 설정 |
| 118 | setsid | 세션 ID 설정 |
| 119 | setuid, setgid | 실사용자와 그룹 ID설정 |
| 120 | shmat | 공유 메모리와 연결 |
| 121 | shmctl | 공유 메모리에 대한 다양한 연산 |
| 122 | shmdt | 공유메모리와의 연결 끊기 |
| 123 | shmget | 공유 메모리의 생성과 접근 |
| 124 | sigaction | 신뢰성 있는 시그널 관리 |
| 125 | sigemptyset | 시그널 초기화 |
| 126 | sigprocmask | 시그널 마스크 제어 |
| 127 | sigsetjmp, siglongjmp | 장거리 goto |
| 128 | socket | 통신점 생성(통신 관련 함수) |
| 129 | sprintf | 형식화된 배열 쓰기(NULL 포함) |
| 130 | sscanf | 형식화된 배열 읽기 |
| 131 | stat | 파일 정보 반환 |
| 132 | statvfs | 파일 시스템 정보 반환 |
| 133 | strdup | 문자열에 대한 메모리 할당 |
| 134 | string 계열 | 문자열 관련 연산 |
| 135 | sync | 일정시간 마다 디스크에 저장 |
| 136 | sysinfo | 시스템 정보 반환 |
| 137 | system | 명령어 수행 |
| 138 | tcflush, tcdrain, tcflow | 단말기 제어 |
| 139 | tcgetattr | 단말기 정보 반환 |
| 140 | tcsetattr | 단말기 정보 반환 |
| 141 | time | 시간 반환(초 단위) |
| 142 | times | 프로세스 수행 시간 측정 |
| 143 | truncate, ftruncate | 파일 길이 조정 |
| 144 | ttyname, isatty | 단말기 관련 정보 반환 |
| 145 | ulimit | 프로세스 제한값 제어 |
| 146 | umask | 파일 생성 시 허가비트 설정 |
| 147 | uname | 시스템 관련 정보 반환 |
| 148 | ungetc | 파일 스트림에 문자 삽입 |
| 149 | unlink | 링크 삭제 |
| 150 | va_start, va_arg, va_end | 가변 인자 관련 함수 |
| 151 | wait | 프로세스 종료 기다리기 |
| 152 | waitpid | 특정 프로세스 종료 기다리기 |
| 153 | write | 파일에 쓰기 |