리눅스를 포함한 유닉스 시스템 상에서 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 | 파일에 쓰기 |