TIL (Today I Learned)/컴퓨터 시스템(CS)41 [CS] 표준 입출력, Standard IO #3 이 포스팅은 한국기술교육대학교 김덕수 교수님의 시스템 프로그래밍 (CSE 232)를 참고하여 작성되었습니다. 표준 파일 입출력에는 다음 4가지가 있다. (1) Character IO (2) String IO (3) Binary IO (4) Formatted IO 이번 포스팅에서는 (1), (2)에 대해서 다루겠다. #1 Character-based reading, fgetc(3) #include int fgetc(FILE *stream); int getc(FILE *stream); // macro int getchar(void); // = getc(stdin) stream : File operation을 수행할 stream c (character) : 쓰려는 문자 Return : 읽은/기록한 문자 | E.. 2022. 12. 14. [CS] 표준 입출력, Standard IO #2 이 포스팅은 한국기술교육대학교 김덕수 교수님의 시스템 프로그래밍 (CSE 232)를 참고하여 작성되었습니다. Standard IO - 플랫폼에 독립적인 유저 버퍼링 솔루션(user-buffering solution)이다. - File pointer File operation을 관리하는 구조체(FILE)를 가리키는 포인터 내부적으로 file descriptor와 연동(mapping)됨 - Stream 프로그램과 file을 연결하는 통로 Stream of bytes Workflow of file I/O - File open 파일 스트림 생성 및 FILE 구조체에 저장 fopen() - File access (Read / Write) 파일의 내용 읽기 또는 정보 기록 fprintf(), fscanf(), fg.. 2022. 12. 14. [CS] 표준 입출력, Buffered IO #1 이 포스팅은 한국기술교육대학교 김덕수 교수님의 시스템 프로그래밍 (CSE 232)를 참고하여 작성되었습니다. Block - 파일 시스템의 추상화된 개념. 물리적 Disk를 추상. 운영체제 입장에서 file system은 block들의 나열이다. - Block의 크기는 일반적으로 512~8192 bytes (2^n) Sector size < Block size < Page size - Disk (or block device) access의 최소 단위 File IO vs Disk IO - File IO with system call Access in a unit of byte - Disk IO Access in a unit of block 매번 byte단위로 Disk에 접근하는 것은 비효율적이다. Buffe.. 2022. 12. 14. [CS] File, File descriptor #4 이 포스팅은 한국기술교육대학교 김덕수 교수님의 시스템 프로그래밍 (CSE 232)를 참고하여 작성되었습니다. #1 Duplication FD - dup(2) / dup2(2) #include int dup(int oldfd); int dup2(int oldfd, int newfd); oldfd (old file descriptor) : 복사하려는 file descriptor newfd (old file descriptor) : 새로운 fd 지정, dup()의 경우 할당 가능한 fd 중 가장 작은 값 할당 Return : oldfd를 복사한 새로운 fd , -1 = error IO redirection #include #include #include #include int main(void) { int f.. 2022. 12. 13. [CS] File, 파일 읽기/쓰기 #3 이 포스팅은 한국기술교육대학교 김덕수 교수님의 시스템 프로그래밍 (CSE 232)를 참고하여 작성되었습니다. #1 Reading a file - read(2) #include ssize_t read(int fd, void *buf, size_t count); fd (file descriptor) : 읽으려는 파일의 file descriptor buf (buffer) : 읽은 내용을 저장할 buffer의 시작 주소 주의사항 : byte 단위를 읽는 것이기 때문에 void 포인터 형태로 넣어야 한다. count : 읽을 byte의 수 Return : 실제로 읽은 byte의 수 0 = 파일의 끝(EOF)에 도달, -1 = 에러 #2 Writing to a file - write(2) #include ssize.. 2022. 12. 13. [CS] File, 파일 열기/닫기 #2 이 포스팅은 한국기술교육대학교 김덕수 교수님의 시스템 프로그래밍 (CSE 232)를 참고하여 작성되었습니다. #1 Low-level vs High-level file IO Low-Level File IO (System call) - system call을 이용해서 파일 입출력 수행 - File descriptor 사용 - Byte 단위로 디스크에 입출력 - 특수 파일에 대한 입출력 가능 High-Level File IO (Buffered IO) - C Standard library를 사용하여 파일 입출력 수행 - File pointer 사용 (FILE *fp) - 버퍼(block) 단위로 디스크에 입출력 : 여러 형식의 입출력 지원 #2 Opening files - open(2) man -s 2 open.. 2022. 12. 13. [CS] File, 파일이 무엇인가? #1 이 포스팅은 한국기술교육대학교 김덕수 교수님의 시스템 프로그래밍 (CSE 232)를 참고하여 작성되었습니다. 네트워크 학습을 하면서, 네트워크도 결국 하나의 파일 입출력으로 봐야 함을 학습했다. 그렇다면 해당 파일 입출력에 대한 system call을 다루기 위한 학습이 필요하다. 해당 포스팅은 이런 이유로 시작되었다. #1 파일 개요 파일? 보조 기억 장치에 저장된 연관된 정보들의 집합 File operations : Create, Write, Read, Reposition, Delete, Etc... OS는 file operation들에 대한 system call을 제공해야 한다. 파일의 종류 : (1) 일반 파일 Regular file: Text or binary data file (2) Direc.. 2022. 12. 13. [CS] 네트워크 기초, HTTP 2 #8 이 문서는 유튜브 '생활코딩'님의 'WEB2 - HTTP' 강의를 토대로 작성되었습니다. 출처 : https://www3.ntu.edu.sg/home/ehchua/programming/webprogramming/http_basics.html In Introduction to HTTP Basics HTTP (HyperText Transfer Protocol) Basics Introduction The WEB Internet (or The Web) is a massive distributed client/server information system as depicted in the following diagram. Many applications are running concurrently over the.. 2022. 12. 11. [CS] 네트워크 기초, HTTP #7 이 문서는 유튜브 '널널한 개발자 TV'님의 강의를 토대로 작성되었습니다. #1 웹 서비스 구조 Web 탄생 배경 Web 탄생 이전 인터넷 상 데이터 = 문자 ~ TEXT파일 티모시 버너스 리 HTML = Text + Link HTTP = HTML + 인터넷 Web = HTML + HTTP 문서를 다루는 모든 프로그램은 Data + 제어 + 인터페이스 3요소로 구성되어 있다. #2 웹 서비스 3대 요소 3대 요소 : 자료구조(데이터) + UI + 제어체계 유지보수 편의성을 극대화 하기 위해서 위 요소를 모듈화한다. Web Client (Browser) - internet - Web Server 초창기 웹서버 HTTP는 TCP/IP 통신을 전제로 했다. HTTP의 중요한 특징 : Stateless 인터넷 .. 2022. 12. 11. 이전 1 2 3 4 5 다음