리눅스 시스템 프로그램을 보면 fd를 얻어오는 코드를 자주 볼 수 있어요. fd를 보통 file descriptor라고 하죠.특정 프로세스에서 파일 핸들이라고 이야기하고요. 그럼 fd가 커널 공간에서 어떻게 생성되고 저장되는지 살펴보도록 할께요.#include <stdio.h>#include <unistd.h>#include <sys/types.h>#include <sys/stat.h>#include <fcntl.h>#include <stdlib.h> #define MAX 1024 int main (int argc, char ** argv[]) { int fd; int readn = 0; int writen = 0; char