raw 디바이스 사용
작성자 정보
- 임근식 작성
- 작성일
컨텐츠 정보
- 1,254 조회
- 1 댓글
- 0 추천
-
목록
본문
==> Raw Device를 사용하시기 위해 open()함수의 플래그를 잘못 사용하신 것 같습니다.
예제를 올릴테니 작성에 참고하시기 바랍니다. 장황하게 설명하는 것보다 그냥
예제 소스를 올르드리는 것이 이해를 도울수 있을 것 같습니다.
---------------------------------------------------------------------------------------
#include <stdio.h>
#include <sys/types.h>
#include <unistd.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <time.h>
int main (void) {
int fd1,fd2;
static unsigned char block[1024+4096];
unsigned char *bp = (unsigned char *)((long) &block & 0xfffff000);
// allign on page boundary
int reads=0, writes=0;
int k;
time_t ticks;
fd1 = open("/dev/raw1",O_CREAT|O_RDWR);
if (fd1 < 0) {
printf("Can't open /dev/raw1
");
perror("rwtest: ");
return 1;
}
for(k=0;k<1000;k++) {
int count;
if (k) {
lseek( fd1, 0, SEEK_SET);
}
if (k % 2) {
/* write */
count = write( fd1, bp, 1024);
} else {
/* read */
*bp += 1; // make page dirty, force reread;
count = read( fd1, bp, 1024);
}
if (count != 1024) {
printf("k = %d, Count = %d
", k, count);
return 2;
}
}
close(fd1);
return 0;
}
관련자료
-
이전
-
다음
임근식님의 댓글
- 임근식
- 작성일