>> Delete No. 51438 article
No. raw device에서 쓰고 읽기

등록 2002-06-25 11:06:00 By localhost     조회 4
이름 영철    

		안녕하세요
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