[LINUX2.4.27] Direct_IO 가 가능한가요?..

skysoma의 이미지

안녕하세요..
리눅스 커널 초보자입니다..

raw io가 너무 필요한데.. 파일 오픈시 O_DIRECT라는 기능을 알게 되었습니다.. 커널은 2.4.27입니다..

그런데 응용 테스트 프로그램에서 open(fd, O_RDWR | O_DIRECT, 0777) 이렇게 하면요..
O_DIRECT가 정의되지 않았다고 에레가 납니다..

헤더는 #include <fctnl.h>를 했는데도요..

이것이 /user/include/fcntl.h 이지요?..
근데 /usr/include/asm/fcntl.h 에는 분명히 #define O_DIRECT 40000 이라고 정의가 되어 있거든요..
이 두 헤더 파일의 형태가 많이 다르긴 합니다..(다른 용도인가요?)

도와주세요.. 어떻게 해야하죠?..
2.4.27에서는 불가능한것인지.. 패치를 해야하는지.. 헤더가 잘못된것인지요...
고수님들 부탁드립니다... 꾸벅..

참고로 저는 UML(user mode linux를 사용하고 있습니다..)

새해 복 많이 받으세요..^^

익명 사용자의 이미지

커널소스트리의 include를 직접 사용하시려면 그쪽을 include path에 넣어주세요. (기본 includepath는 제외하시고..)
아니면 /usr/include/asm/fcntl.h 를 확인해보세요.