아래는 코드에서 사용된 함수들에 대한 사용법, 설명, 그리고 간단한 예제를 포함한 표입니다.


1. 표준 입출력 함수

함수 사용법 설명 예제
printf printf(const char *format, ...); 문자열을 표준 출력(stdout)에 출력. printf("Hello, %s!", "World");
fprintf fprintf(FILE *stream, const char *format, ...); 파일 스트림에 출력. fprintf(stderr, "Error: %d\\n", errno);
fputs fputs(const char *str, FILE *stream); 문자열을 파일 스트림에 출력. fputs("Hello, File!", file);
fgets fgets(char *str, int size, FILE *stream); 파일에서 한 줄을 읽음. fgets(buffer, sizeof(buffer), stdin);
fopen FILE *fopen(const char *filename, const char *mode); 파일을 열고 파일 스트림 반환. FILE *file = fopen("test.txt", "r");
fclose int fclose(FILE *stream); 열린 파일 스트림 닫기. fclose(file);
perror void perror(const char *s); 오류 메시지를 출력. perror("Error opening file");

2. 문자열 처리 함수

함수 사용법 설명 예제
strncpy char *strncpy(char *dest, const char *src, size_t n); 문자열을 특정 길이만큼 복사. strncpy(dest, src, 10);
strcpy char *strcpy(char *dest, const char *src); 문자열을 다른 메모리 위치로 복사. strcpy(dest, "Hello!");
strcmp int strcmp(const char *s1, const char *s2); 두 문자열을 비교. if (strcmp(s1, s2) == 0) { printf("같음"); }
strtok char *strtok(char *str, const char *delim); 문자열을 구분자로 분리. token = strtok(buffer, " ");
strlen size_t strlen(const char *str); 문자열의 길이를 반환. size_t len = strlen("Hello");

3. 파일 및 디렉터리 처리 함수

함수 사용법 설명 예제
open int open(const char *pathname, int flags, ...); 파일을 열고 파일 디스크립터 반환. int fd = open("test.txt", O_RDONLY);
read ssize_t read(int fd, void *buf, size_t count); 파일 디스크립터로부터 데이터를 읽음. read(fd, buffer, sizeof(buffer));
write ssize_t write(int fd, const void *buf, size_t count); 파일 디스크립터에 데이터를 씀. write(fd, "Hello", 5);
close int close(int fd); 열린 파일 디스크립터를 닫음. close(fd);
fstat int fstat(int fd, struct stat *buf); 열린 파일 디스크립터의 상태 정보를 가져옴. fstat(fd, &statbuf);
stat int stat(const char *path, struct stat *buf); 파일 경로의 상태 정보를 가져옴. stat("test.txt", &statbuf);
opendir DIR *opendir(const char *name); 디렉터리를 열고 디렉터리 포인터 반환. DIR *dir = opendir(".");
readdir struct dirent *readdir(DIR *dirp); 디렉터리 내 항목을 읽음. struct dirent *entry = readdir(dir);
closedir int closedir(DIR *dirp); 열린 디렉터리를 닫음. closedir(dir);
mkdir int mkdir(const char *pathname, mode_t mode); 디렉터리를 생성. mkdir("newdir", 0755);
snprintf int snprintf(char *str, size_t size, const char *format, ...); 버퍼에 형식화된 문자열을 출력. snprintf(buffer, sizeof(buffer), "file_%d.txt", i);

4. 프로세스 관리 함수

함수 사용법 설명 예제
fork pid_t fork(void); 현재 프로세스를 복제하여 자식 프로세스 생성. pid = fork();
execvp int execvp(const char *file, char *const argv[]); 새 프로그램을 실행. execvp("ls", args);
waitpid pid_t waitpid(pid_t pid, int *status, int options); 자식 프로세스가 종료될 때까지 대기. waitpid(pid, &status, 0);
getpid pid_t getpid(void); 현재 프로세스의 ID를 반환. pid_t pid = getpid();
getppid pid_t getppid(void); 부모 프로세스의 ID를 반환. pid_t ppid = getppid();
exit void exit(int status); 현재 프로세스를 종료하고 반환값 설정. exit(0);

5. 환경 변수 및 시스템 정보 함수

함수 사용법 설명 예제
getenv char *getenv(const char *name); 환경 변수 값을 가져옴. char *home = getenv("HOME");
getcwd char *getcwd(char *buf, size_t size); 현재 작업 디렉터리의 절대 경로를 반환. getcwd(buffer, sizeof(buffer));

6. POSIX 옵션 처리 함수

함수 사용법 설명 예제
getopt int getopt(int argc, char *const argv[], const char *optstring); 명령줄 옵션을 처리. while ((opt = getopt(argc, argv, "ais")) != -1) { ... }