1. 저 수준 파일 입출력(Low-Level File Access)
- 리눅스 혹은 윈도우즈 자체에서 제공해 주는 파일 입출력 함수를 사용하여 파일을 관리(파일의 생성 및 삭제, 데이터 입력 및 출력)하는 것을 의미함.
- 리눅스에서는 모든 것을 파일로 관리함.
1) 파일, 소켓, 표준 입력, 표준 출력
* 주의 : 표준 입출력 함수.
- 파일에 파일 디스크립터를 할당해서 관리(파일 디스크립터는 정수)
2. 파일 디스크립터(File Descripter) - 리눅스.
- 파일을 관리하기 위해서 모든 파일(파일, 소켓 표준 입력, 표준 출력)에 파일 디스크립터를 할당 해 준다.
파일 디스크립터 | 대상 |
0 | 표준 입력 |
1 | 표준 출력 |
2 | 표준 에러 출력 |
* Windows에서는 File Handle 이라 함.
3. File open 및 Close
#include <fcntl.h>
#include <sys/type.h>
#include <sys/stat.h>
int open(const char *path, int flag);
* return 타입이 int인 이유는 파일 디스크립터를 return 해주기 때문.
#include <unistd.h>
int close(int fildes);
* int fildes = 파일 디스크립터 value
MODE | 의 미 |
O_CREAT | 필요한 경우 파일을 생성 |
O_TRUNC | 존재하던 데이터를 모두 삭제 |
O_RDONLY | 읽기 전용 모드로 파일을 오픈 |
* 위의 표들은 int flag에 들어감.
4. Data read & Write
#include <unistd.h>
ssize_t write(int fildes, const void *buf, size_t nbytes);
* const void *buf = 파일의 정보를 담고 있는 배열에 대한 정보
*size_t nbytes = 전달하고자 원하는 데이터의 크기
#include <unistd.h>
sszie_t read(int fildes, void *buf, size_t nbytes);
* void *buf = 데이터 저장소
* size_t nbytes = 읽어들일 최대 데이터의 크기.
'[+] Information > [-] Network' 카테고리의 다른 글
[2009/5/24] 윈도우즈 기반으로 구현하기 (0) | 2009.05.24 |
---|---|
[2009/5/24] 예제소스(low_open.c, low_read.c, fd.seri.c) (0) | 2009.05.24 |
[2009/5/23] 네트워크 프로그래밍의 이해. (0) | 2009.05.23 |
전세계 IP 대역 2009 2월 2일자. (4) | 2009.03.01 |