File I/O, TCP, Serial 입니다. 죄송합니다 ㅠ_ㅠ

Slides:



Advertisements
Similar presentations
제철고 프로그래밍언어 2015 가을학기 강의 #2 Python 변수, 입출력, 배열 박성우 POSTECH 컴퓨터공학과 2015 년 9 월 30 일.
Advertisements

출석수업 과제 – 총 5문제, 10월 25일 제출 정보통계학과 장영재 교수.
Network Lab. Byoung-Son, Choi
Image & Video processing
Understanding of Socket and File I/O
제14장 동적 메모리.
인공지능실험실 석사 2학기 이희재 TCP/IP Socket Programming… 제 11장 프로세스간 통신 인공지능실험실 석사 2학기 이희재
Network Lab. Young-Chul Hwang
Department of Computer Science and Engineering
Sockets Introduction and Protocol Setting
컴퓨터 프로그래밍 기초 [Final] 기말고사
소켓 모델 주소 지정 in_addr_t inet_addr(const char *ip_address) 연결 지향 모델 (TCP)
08. 디바이스 드라이버의 읽기와 쓰기 김진홍
데이터 파일 C 데이터 파일과 스트림(Stream) 텍스트 파일 처리
제2장. 파일 입출력 (File I/O) © 숙대 창병모.
Network Lab. Seoung Hyeon, Lee
Department of Computer Science and Engineering
조 병 규 Software Quality Lab. 한국교통대학교
Bluetooth Billionton Setup
윤성우의 열혈 C 프로그래밍 윤성우 저 열혈강의 C 프로그래밍 개정판 Chapter 12. 포인터의 이해.
제15장 파일 입출력 문자열을 출력하는 여러가지 방법 (15-2쪽) 문자열만 처리하는 입출력 함수
한남대학교 컴퓨터공학과 컴퓨터 네트워크 실험실
인공지능실험실 석사 2학기 이희재 TCP/IP Socket Programming… 제 7장 소켓 연결의 우아한 종료 인공지능실험실 석사 2학기 이희재
양방향 파이프의 활용 양방향 통신 파이프는 기본적으로 단방향이므로 양방향 통신을 위해서는 파이프를 2개 생성한다.
12장 파이프.
CHAPTER 02 OpenCV 개요 PART 01 영상 처리 개요 및 OpenCV 소개.
11장. 포인터 01_ 포인터의 기본 02_ 포인터와 Const.
고급 입출력 함수 School of Electronics and Information. Kyung Hee University.
8장 함수 함수의 필요성 라이브러리 함수와 사용자 정의 함수 함수의 정의, 원형, 호출 배열을 함수 인자로 전달 재귀호출.
SqlParameter 클래스 선문 비트 18기 발표자 : 박성한.
컴퓨터 프로그래밍 기초 #02 : printf(), scanf()
Linux/UNIX Programming
인공지능실험실 박사 1학기 장성만 TCP/IP Socket Programming… 9장 소켓의 다양한 옵션 인공지능실험실 박사 1학기 장성만
파일 기술자 복사 파일 기술자 복사 : dup(2) 파일 기술자 복사 : dup2(3)
파일 기술자 파일 기술자 현재 열려있는 파일을 구분하는 정수값 저수준 파일 입출력에서 열린 파일을 참조하는데 사용
4장 파일.
Linux/UNIX Programming
Understanding of Socket and File I/O
DK-128 실습 EEPROM 제어 아이티즌 기술연구소
11 표준 입출력과 파일 입출력 데이터를 읽고 쓰는 다양한 방법 익히기!.
13장 고급 입출력 함수 박사 4학기 최 성자.
TCP/IP Socket Programming…
14장. 포인터와 함수에 대한 이해.
Socket Address Structure and Byte Ordering Functions
Socket Address Structure and Byte Ordering Functions
FILE I/O 번째주 Dept. of Computer Science & Engineering
Department of Computer Engineering
Linux Programming Spring 2008
Sockets Introduction and Protocol Setting
24장. 파일 입출력.
19. 함수 포인터와 void 포인터.
네트워크 프로그래밍의 이해 School of Electronics and Information.
DK-128 실습 내부 EEPROM 제어 아이티즌 기술연구소 김태성 연구원
컴퓨터 프로그래밍 기초 - 10th : 포인터 및 구조체 -
FileMaker를 이용한 데이터 관리 옥현진(KICE).
컴퓨터 프로그래밍 기초 - 8th : 함수와 변수 / 배열 -
5강. 배열 배열이란? 배열의 문법 변수와 같이 이해하는 배열의 메모리 구조의 이해 레퍼런스의 이해 다차원 배열
Linux/UNIX Programming
9강. 클래스 실전 학사 관리 프로그램 만들기 프로그래밍이란 결국 데이터를 효율적으로 관리하기 위한 공구
Understanding of Socket and File I/O
컴퓨터 프로그래밍 기초 - 9th : 배열 / 포인터 -
구조체(struct)와 공용체(union)
Chapter 12 파일 입출력.
바이트 순서 변환 함수 주소 변환 함수 바이트 조작 함수 원격지 호스트 정보를 얻는 함수
Department of Computer Engineering
06. 디바이스의 등록과 해제 김진홍
제 29 강 스트링(string) 다루기 s a i s . s T i h t g r i n.
File IO 정보물리.
윈도우에서의 유니코드.
3장 파일 다루기 한빛미디어(주).
Presentation transcript:

File I/O, TCP, Serial 입니다. 죄송합니다 ㅠ_ㅠ Linux에서의… File I/O, TCP, Serial 입니다. 죄송합니다 ㅠ_ㅠ

File I/O Linux에서는 모든 것을 파일로 처리합니다. 그래서 이건 중요합니다. 이것만 잘 해도 뒤에 TCP, Serial 이런 거 그냥 파일 입출력처럼 해버리면 됩니다. 사실 C의 File I/O와 비슷합니다. 어찌보면 그놈이 그놈입니다. 서론이 길었군요….

파일 디스크립터(File Descriptor) 시스템으로부터 할당받은 파일이나 소켓을 대표하는 정수입니다. 일종의 번호표 입니다. 0,1,2번은 이미 정해져 있습니다. 그래서 3번부터 붙습니다. 무슨 소린지 헷깔립니다. 일단 예제를 보시죠

함수와 인자에 대해서는 나중에 자세히 설명 할께요. 우선 fdes1 에는 소켓 생성할 때받은 파일 디스크립터 번호가 들어가구요 fdes2에는 test.dat이라는 파일을 생성하고 여는데 받은 파일 디스크립터 번호가 들어갑니다. Fdes3은 역시 소켓… 자자!!! 우리의 리눅스는 전부 파일로 처리해서 소켓이든 파일이든!! 일단 파일로 생각하고 순서대로 번호표를 붙입니다~

파일 디스크립터 0, 1, 2의 의미 방금 전의 예제에서 보셨듯이 3번부터 붙습니다. 이제 0, 1, 2가 뭔지 설명하죠 0 : 표준 입력 – Standard Input 1 : 표준 출력 – Standard Output 2 : 표준 에러 출력 : Standard Error 제 눈에는 Standard가 Starcraft로 보여 흠짓 합니다 -_-;;

잠깐 쉬면서 정리 파일 디스크립터에 대한 개념이 조금 잡히시나요? 저는 사실 이게 어디에 활용될지 모르겠습니다 -_-;; 이걸 윈도우에서는 핸들이라고 하네요 저는 사실 이게 어디에 활용될지 모르겠습니다 -_-;; 단지 시스템이 편하다는 것 말고는…

여러 함수들 기존의 파일 입출력에서 다른 생소한 것을 무사히 처리하셨습니다. 기존의 파일 입출력에서 다른 생소한 것을 무사히 처리하셨습니다. 이제부터 익숙한 open(), close() 등을 설명하겠습니다. C에서 이미 배워 다 아는걸 왜 하냐구요? 저는 fflush(myBrainBuffer); 이 함수가 자꾸 작동돼서요. 무한반복 해야되요.

open() 성공시 0, 실패시 -1리턴 필요할 것 같은 헤더파일 #include <fcntl.h> #include <sys/types.h> #include <sys/stat.h> 함수 int open(const char *path, int flag); const char *path : 파일의 경로인 문자열 int flag : 여러가지 파일 여는 방식.

앞의 int flag에 대해 자세히 사실 필요 할 때마다 찾아보면 됩니다. 그래도 없으면 무책임해 보이니까… -_- O_CREAT : 파일 없으면 생성 O_TRUNC : 이미 있던 데이터 싹 지우고 파일 염 O_APPEND : 이미 있던 데이터 뒤에서 부터… O_RDONLY : 읽기 전용으로 열어드립니다~ O_WRONLY : 쓰기 전용으로 염 O_RDWR : 읽고 쓰고 다됨 ㅋ

close() 성공시 0, 실패시 -1리턴 필요한 헤더파일 #include <unistd.h> 함수 int close(int fildes); int fildes : 닫아줄 파일의 파일 디스크립터 오호라 여기에 쓰이는군요! C에서는 여기에 파일포인터가 들어간 거 같은데 ㅋ

write() 성공 시 전달 한 바이트 수, 실패 시 -1 리턴 헤더파일 #include <unistd.h> 이거 하나 함수 선언(ssize_t 자료형에 대해서는 뒤에 ㅋ) ssize_t write(int fildes, const void *buf, size_t nbytes) int fildes : 데이터 전송을 어디로 할지 정하는 파일 디스크립터 const void *buf : 전송할 데이터가 있는 주소 size_t nbytes : 전송할 데이터의 바이트 수

read() 성공 시 전달 한 바이트 수, 또는 EOF 만나면 0 실패 시 -1 리턴 헤더파일 #include <unistd.h> 이거 하나 함수 선언(ssize_t 자료형에 대해서는 뒤에 ㅋ) ssize_t read(int fildes, const void *buf, size_t nbytes) int fildes : 데이터 전송을 어디서 받을지 정하는 파일 디스크립터 const void *buf : 수신한 데이터를 저장할 변수 주소 size_t nbytes : 수신할 데이터의 최대 바이트 수

_t로 끝나는 이상한 자료형들 size_t는 unsigned int 로 정의 되어 있습니다. ssize_t는 그냥 int 입니다. 이렇게 한 이유는 컴퓨터에 따라 자료형의 크기가 달라집니다. 그래서 항상 같은 byte의 자료형을 만들기 위해 이런 것을 씁니다. <sys/types.h>에 선언되어 있습니다.