시스템 콜 안에서 파일여는 법은?
글쓴이: rimuzzang / 작성시간: 목, 2005/06/16 - 11:58오전
예를 들어서
/dat.dat 라는 파일이 있을때
어떻게 파일을 열고 접근해야 fd 를 얻어야하는지 모르겠습니다.
sys_open 함수를 써봤으나..
대략 -1 값만 리턴해주는..
int file_open;
file_open = sys_open("/dat.dat", O_RDONLY , 0644);
if( file_open < 0 )
error();
흐음..
이유가 뭘까요..
그냥 사용자 application 에서는 잘 되는디..
Forums:
filp_open() 을 사용해보세요.파일 디스크립터가 나오는게 아니
filp_open() 을 사용해보세요.
파일 디스크립터가 나오는게 아니긴 하지만 파일에 read/write를 하실 수 있을겁니다.
왜 에러가 생기는지 자세히 추적을 해보시는 것이 어떨까요. sys_ope
왜 에러가 생기는지 자세히 추적을 해보시는 것이 어떨까요. sys_open(), flip_open()따위는 결과적으로 해당하는 파일시스템이나 디바이스 드라이버의 open 함수로 연결되게 되어 있으니 조금 생각을 하고 따라가면 추적이 어렵지는 않습니다. 함수포인터를 따라다니기가 조금 귀찮기는 하지만...
sys_open() 과 같이 시스템콜을 커널에서 직접 사용해 파일을 read/write하는 경우도 지금까지 제가 경험한 바로는 사용상 전혀 문제가 없습니다. 실제로 판매되고 있는 제품에서도 이런 방식을 사용하고 있는 예도 있고요.
댓글 달기