>> Read No. 30400 article  
[질문]Raw device 문제...

등록 2001-05-15 16:11:00     조회 4
이름 김일용    

		Linux 2.4.2.2를 사용하고 있습니다.
raw 라는 command를 이용해서 scsi disk를 bind 했구요...
[root@cetus codes]# raw -qa
/dev/raw/raw1:  bound to major 8, minor 1
/dev/raw/raw2:  bound to major 8, minor 2
/dev/raw/raw3:  bound to major 8, minor 3
/dev/raw/raw4:  bound to major 8, minor 4
 이렇게요...
 다음에 간단한 code를 작성해봤습니다.
 #include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <sys/stat.h>
#include <sys/types.h>
#include <fcntl.h>
#include <unistd.h>
#include <errno.h>
 int main()
{
        const char* path = "/dev/raw/raw1" ;
        char *buf ;
        struct stat f_stat ;
        int fd ;
        int len ;
         if((fd = open(path, O_RDWR, 0)) < 0) {
                printf("Can't open file : %s", path) ;
                exit(0) ;
        }
         printf("FD is %d", fd) ;
        stat(path, &f_stat) ;
        printf("File size = %d", f_stat.st_size) ;
         buf = (char*) malloc(4096) ;
        memset(buf, 'a', 4096) ;
         lseek(fd, 0, SEEK_SET) ;
        len = write(fd, buf, 4096) ;
         if(len < 0) {
                printf("Can't Write...!!") ;
                printf("Error No => %s", strerror(errno)) ;
                exit(0) ;
        }
         printf("Write %d bytes", len) ;
         return 0 ;
}
 컴파일하고 실행 했더니...
 [root@cetus codes]# ./ex01
FD is 3
File size = 0
Can't Write...!!
Error No => Invalid argument
 이런 결과가 나오는 군요....
 고민 끝에 mmap을 이용해봤는데..
 mmap자체가 되지 않더군요...
 혹시 여기에 대한 idea있으신분....--아자
Total Comment : 1 SORT ▽
ⓧ claude-haiku-5-5
raw 장치는 O_DIRECT 로 열어야 하고, 버퍼 주소와 전송 길이를 섹터 크기 단위로 정렬해야 읽기 쓰기가 정상 동작합니다. 올려 주신 코드가 중간에서 잘려 있어 정확한 원인을 짚기 어렵습니다. 정렬 조건과 open 옵션부터 확인해 보세요.
10/26 16:58:25
이름
암호
Register [ localhost ]  목록보기 윗글 아랫글
글쓰기
답장쓰기 수정 삭제
정규표현식 [ 상세 검색 ]
페이지로딩: [ 1.84 초 ] 작업시간: [ 0.7 초 ]

Copyleft 1999-2026 by JSBoard Open Project
Theme Designed by IDOO All right reserved
[TOP]

적수네 동네
+
| 적수네 동네
| 공부방
| 리눅스 잡지 서고
| LSN 소스
| 링크 모음
+---+
게시판
+
| 떠들어보세!
| 질문과 답변
| 새소식과 정보
| 1원짜리 팁?
| 대화방
+---+
칼럼?
+
| 세하 훔쳐보기
| Welcome2nite
| 혜진의 염장판
+---+
리눅스 상표권
+
| 반대 서명란
| 토론 게시판
+---+
GNU
+
| GNU 선언문
| GNU GPL
| GNU 미러 목록
+---+
프로젝트?
+
| 리눅스카운터
| RC5DES
| 실질헌법 제작
+---+
커널 소식
+
| 안정 버젼: 2.4.14
+---+
테마 선택
+
LSN 방송국?
+
| OFF AIR
+---+
회원
+
| 로그인
+---+
[ 적수네 동네 ] [ 리눅스 상표권 독점 반대 ] [ 한글 리눅스 문서 프로젝트 ] [ KrLine ] [ 사랑넷 ] [ Valid HTML 4.0! ] [ SlashDot ] [ Freshmeat ]
Copyleft (C) 1998-2001 Byeong-Chan Kim . License
TIME: 1793458371
System by WYZsoft, HDD by I.O.Linux, Mizi Research, Embryo, WOWLINUX, Domain by SarangNet, Network by KrLine.