# file descriptor

7개의 포스트
post-thumbnail

[Week13] 💾 File Descriptor 💽

🌸🌸🌸블로그 글은 복습 겸 gitbook의 순서에 따라 번역 및 관련 내용에 JK피셜을 달아 정리할 예정이다. 말그대로 JK피셜인 칸큼 100%맞는 말은 아닐 수 있다는 거 참고해주길 바란다. 📖 Gitbook 내용 📖 이번주차도 gitbook을 찬찬히 읽으면서 os를 이해해보자. Introduction 이전의 두 과제에서는 파일 시스템이 내부적으로 어떻게 구현되어 있는지에 대해 신경쓰지 않고 광범위하게 사용했었습니다. 이번 마지막 과제에서는, 당신은 파일 시스템의 구현을 발전시키게 될 겁니다. filesys 디렉토리에서 주로 작업하게 될 겁니다. 프로젝트2 또는 프로젝트3를 바탕으로 프로젝트4를 진행하면 됩니다. 각각의 경우, 프로젝트2에서 구현했던 모든 기능이 filesys를 진행하면서 똑같이 작동해야 합니다. 만약, 프로젝트 3을 바탕으로 진행했다면 프로젝트3에서 구현한 기능 역시 작동해야 합니다. 또한 VM 기능을 활성화시키기 위해서는  file

2023년 5월 26일
·
0개의 댓글
·
post-thumbnail

[SW사관학교 정글]67일차 TIL - file descriptor

file descriptor 개념 💡 파일 디스크립터는 리눅스 혹은 유닉스 계열의 시스템에서 프로세스가 파일을 다룰때 사용하는 개념이다. 특정 파일에 접근할때 사용하는 추상적인 값이다. 파일 디스크립터는 일반적으로 음수가 아닌 0과 양수인 정수값을 갖는다는 말이다.(즉 c언어에서 int로 표현됨) 유닉스 시스템에서는 모든것을 파일이라고한다. 일반적인 정규파일(Regular File)에서부터 디렉토리(Directory), 소켓(Socket), 파이프(PIPE), 블록 디바이스, 캐릭터 디바이스 등등 모든 객체들은 파일로써 관리된다. 유닉스 시스템에서 프로세스가 이 파일들을 접근할 때에 파일 디스크립터(File Descriptor)라는 개념을 이용한다. 프로세스가 실행중인 파일을 Open하면 커널은 해당 프로세스의 파일 디스크립터 숫자 중에 사용하지 않는 가장 작은 값을 할당해준다. 그 다음 프로세스가 열려있는 파일에 시스템 콜을 이용해서 접근할 때

2022년 11월 24일
·
0개의 댓글
·

file descriptor, open(), read() - C

요새 공부를 하고 있건만... 어째 제대로 집중도 못 하고, 기껏 공부를 열심히 해도 머릿속에는 남는 게 없었어요. 과제 끝내기만 하면 머리가 깡통이 되어서요... 정보를 전하기 위해 글을 쓰다 보면 저한테 남는 게 많을 것 같아서 글을 쓰기 시작했어요. 처음 게시글을 적게 되었는데 찬찬히 적어볼게요. 이런 글 쓰는 건 첨이라 틀린 부분이나 모호한 부분이 존재할 거에요. 그런 부분은 가감 없이 지적해주셔요. 진짜루요. 꼭이요. 저 뿐 아니라 다른 사람들도 잘못 알게 되는 거니까 사람 여럿 살리시는 겁니다. ㅎㅎ;; 텍스트 파일을 읽어오게 하고 싶다고 가정해봐요 컴퓨터한테 파일을 '읽어오게 시키기' 위해서는 뭐가 필요할까요? 잘 모르겠으면 이렇게 생각해봐요. 시각 장애인에게 "내 휴대폰 좀 건네 줄래?"라고 말한다면 뭐라고 대답할까요? 분명, "니 휴대폰이 어딨는데?" 하고 대답할 거에요 컴퓨터도 '어디서' 무엇을 읽어야 하는지 알고 싶을 거

2022년 8월 28일
·
0개의 댓글
·

(Swift) 15552 빠른 A + B

15552번: 빠른 A+B 문제 풀이 아이디어 해당 문제를 풀기 위해서는 빠른 입출력을 구현해야 합니다. Swift에서 빠른 입출력을 구현하기 위해서는 별도의 클래스를 선언하고 사용해야 합니다. FileIO 클래스는 표준 입력 (= 키보드 입력)을 받아서 byte의 배열로 저장합니다. 그리고 나서 byte를 하나하나 읽어서 원하는 자료형으로 리턴합니다. FileIO 구현 배경 지식 아래 코드를 이해하기 위해서는 3가지 배경 지식을 이해해야 합니다. File Descriptor 아래 코드를 보면 FileIO 객체를 만들기 위해서 FileHandle 객체를 사용하고 있습니다. 공식문서를 참고해보면 FileHandle 객체는 파일 (혹은 소켓, 파이프 등 데이터 스트림)에 접근할 수 있도록 해줍니다. FileHandle 객체를 만든다는 것은 특정 파일의 file descriptor를

2022년 6월 18일
·
0개의 댓글
·

File Descriptor

Concept 파일 디스크립터(File Descriptor)는 Linux or Unix쪽의 시스템에서 Process -> File을 핸들링 시 사용하는 개념으로, Process -> File에 접근시 사용하는 추상적인 값이다. > 파일 디스크립터는 일반적으로 0이 아닌 정수값을 갖게된다. 주로 유닉스 시스템에서는 모든 것을 파일이라고 한다. 정규파일, 디렉토리, 소켓, 파이프, 블록 디바이스, 캐릭터 디바이스 등 모든 객체들을 파일로 관리한다. 유닉스 시스템에서 프로세스가 이 파일들을 접근할 때 파일 디스크립터라는 개념을 이용합니다. Process가 실행중에 파일을 열게되면 커널은 해당 프로세스의 파일 디스크립터 숫자 중 사용하지 않는 가장 작은 값을 할당해줍니다. 그 다음 프로세스가 열려있는 파일에 시스템 콜을 이용해서 접근할 때, 파일 디스크립터(FD)값을 이용해서 파일을 지칭합니다.. 프로그램이 프로세스로 메모리에서 실행될 때, 기본적으로 할당되는 파일디

2022년 5월 16일
·
0개의 댓글
·

[일반] file descriptor

file descriptor란 - 파일에 부여하는 숫자 / 파일을 가리키는 포인터의 베열에서의 index (여기서 파일이란 파일, 디렉토리, 소켓, 파이프 등을 나타낸다. UNIX는 모든 것을 파일로 여기기 때문이다.) file descriptor을 사용하는 가장 흔한 예시는 stdin(0), stdout(1), stderr(2) 이다. 이처럼 file descriptor은 데이터를 보낼 주소라고 생각하면 편하다. 0에서 2번까지는 고정되어있고 파일에 접근할 때마다 3부터 시작해서 가장 낮은 수를 부여한다. > file descriptor table 프로세스마다 가지고 있는 file을 가르키는 포인터를 담은 배열이다. fd의 정체가 이 file descriptor table의 index인 것이다.

2022년 5월 3일
·
0개의 댓글
·

[minishell] 5. 파이프(Pipe) 처리

이 글에서 등장하는 모든 STDIN, STDOUT, STDERR은 파일디스크럽터 0, 1, 2를 조금 더 직관적으로 이해하기 쉽게 사용하려고 제 미니쉘 코드에 define 해 놓은 매크로 입니다. 보통은 STDIN_FILENO 혹은 0으로 사용합니다. 1. dup2() 함수란? 파일 식별자를 복제해 fd2를 fd1으로 바꾼다. 예를 들어 int dup2(fd, stdout); 와 같이 사용하면, 모든 출력이 fd로 향하게 된다. 즉, dup2 함수를 이용하면 부모프로세스가 자식프로세스에게 표준입력으로 문자열을 주는 프로그램을 만들 수 있게된다. 파이프의 기본 원리이다. 출처 : Linux : dup과 dup2 2. 파이프(Pipe) 란? 파이프를 이해하는데 이 글이 매우매우 도움이 되었습니다. 꼭 참고해보세요! 유닉

2021년 2월 12일
·
0개의 댓글
·