2018. 11. 6. 14:44ㆍ임베디드sw공학
1, Linux/Unix 안의 모든 것은 파일이다. (또는 파일로써 취급한다. )
1) DIsk-base files
: ex: /bin/ls, hello.c, hello.o
2) Special files - 실제로 존재하는 파일이 아니다.
- Device files
ex) /dev/tty, /dev/ttyS0 <- 시리얼 포트의 연결되는 것들
- System information
ex) /proc/cpuinfo <- CPU 정보,
- Network sockets
- Inter-process facilities, 파이프나 FIFO같은 것들.
2, File I/O 개념들
a) File Descriptor
1) I/O 수행을 위한 모든 시스템 호출은 File Descriptor를 사용하여 open file들을 참조한다. (반환되는 값을 저장하는 데, 그 값은
작거나, 양수 interger이다.)
2) File Descriptor들은 모든 유형의 open file들을 참조한다. (예로 파이프, FIFO, 소켓, 터미널, 장치들, 그리고 일반 파일들)
3) Standard file descriptors - 사용자가 open을 하지않아도 이미 열려있어서 사용할 수 있는 것들.
ㄱ) 0 - stdin - STDIN_FILENO : 프로그램에 전달되는 키보드 입력 같은 것들.
ㄴ) 1 - stdout - STDOUT_FILENO : 프로그램에서 출려되어 display되는 것들.
ㄷ) 2 - stderr - STDERR_FILENO : 에러메시지들을 표시할 때.
b) Opening and Closing files
c) Reading,Writing, and Seeking
d) Atomicity and Race condition
- Positional and Vector I/O
3, open(2), close(2)
#include <sys/types.h>
#include <stat.h>
#include <fcnt.1>
int open( const char *pathname, int flags, mode_t mode );
int close( int fd );
a) 성공한다면 open()은 file desriptor에 integer값을 반환한다.
b) 실패한다면 -1을 반환한다.
4, read(2), write(2)
'임베디드sw공학' 카테고리의 다른 글
9.시그널 (0) | 2018.11.27 |
---|---|
12 - (3) fork(), execve(), exit(), wait() (0) | 2018.11.20 |
12 -(2) process create (0) | 2018.11.20 |
12-(1) Process 의 개요. (0) | 2018.11.20 |