>> Edit article
이름
제목
패스워드
안녕하세요 raw device에 데이타를 쓰고 읽는 간단한 예제를 다음과 같이 작성해서 수행보았는데 write call에서 'Invalid Argument'에러가 나네요 open은 정상적으로 수행되었는데 write 에서 왜 에러가 발생하는지 모르겠 습니다. 아시는 분의 도움을 부탁드립니다. 그리고 /dev/raw/raw52는 /dev/sdd5에 바인딩하였고요 /dev/sdd5에서는 프로그램이 정상적으로 수행됩니다. #include <stdio.h> #include <unistd.h> #include <fcntl.h> #include <errno.h> main() { int fd = -1; char mbr[512]; int n; if((fd=open("/dev/raw/raw52", O_WRONLY)) < 0) { printf("open fail-%d", errno); exit(1); } memset(mbr, 0, sizeof(mbr)); strcpy(mbr, "This is raw device test"); if((n=write(fd, (char *)mbr, sizeof(mbr))) != 512) { printf("write fail-%d", errno); exit(1); } close(fd); if((fd=open("/dev/raw/raw52", O_RDONLY)) < 0) { printf("open fail-%d", errno); exit(1); } if(read(fd, (char *)mbr, sizeof(mbr)) != 512) { printf("read fail-%d", errno); exit(1); } printf("%s", mbr); close(fd); }
Copyleft
1999-2026 by
JSBoard Open Project
Theme Designed by
IDOO
All right reserved