▶ 구조체입출력(C 에서)
: DB 에서는 레코드입출력
: 프로그램에서는 블록입출력
※ fread(), fwrite() 함수
size_t fread ( void *buffer, size_t size, size_t num, FILE *fp) |
unsigned int 읽어줄곳 크기 읽을갯수 파일구조체를 가르키는 포인터변수 |
size_t fwrite ( void *buffer, size_t size, size_t num, FILE *fp) |
unsigned int 적어줄곳 크기 읽을갯수 파일구조체를 가르키는 포인터변수 |
ex) 3 = fread( buffer, 20, 3, fp) ▶ 반환값은 3 으로 읽어들인 개체의 수를 뜻함 |
※ fseek() 함수
fp R1 R2 R3 R4 R5 |
맨앞 <--><-------------> 맨뒤 한 레코드(Rx) 당 20byte 를 차지 ▲ ▲ |
이동하고픈 위치 현재위치 |
이동하고픈 위치에서 시작하기위해서 fseek 함수를 써보면 |
fseek(fp, 40, SEEK_CUR) // 현재위치에서부터시작 40byte 이동, R3에서 R1뒤까지 fseek(fp, 20, SEEK_SET) // 맨앞에서부터시작 20byte 이동, R1뒤까지 fseek(fp, 80, SEEK_END) // 맨뒤에서부터시작 80byte 이동, R5뒤부터 R1뒤까지 |
함수원형 int fseek( FILE *fp , long offset , int orgin ) |
fp 접근하는 파일포인터, origin 으로부터 떨어진 바이트수, origin 파일의시작,끝,현재 지정 |
※ ftell() 함수( fseek와 함께 자주쓰는함수 )
함수원형 long ftell(FILE *fp) |
현재 파일내의 읽는 점이나 쓰기 점을 반환한다. |
'C++프로그래밍' 카테고리의 다른 글
2013.05.10_전역변수_릴레이를 이용한 토글 (0) | 2013.05.10 |
---|---|
2013.05.09_스택영역 발담기!_리다이렉션!_ (0) | 2013.05.09 |
2013.05.06_구조체입출력(1) (0) | 2013.05.06 |
2013.05.03_해밍코드_파일입출력함수_센서값받아서 LCD 출력하기 (0) | 2013.05.03 |
2013.05.02_파일입출력 (0) | 2013.05.02 |