출처 : http://altistory.net/333
- /* default.c */
- #define _GNU_SOURCE // O_DIRECT
- #define IOUNIT 128*1024
- #include
- #include
- #include
- #include
- int main()
- {
- char *nBuf; // not aligned buffer
- char *aBuf; // aligned buffer
- int fd; // file descriptor
- // 1MB buffer (not aligned yet)
- nBuf = (char*) malloc(IOUNIT+getpagesize());
- // aligned buffer 'aBuf'
- aBuf = (char*)((unsigned)(nBuf+getpagesize()-1)/getpagesize()*getpagesize());
- printf("OPEN FD: %d\n", fd=open("[블록장치경로]", O_RDWR ) );
- printf("WRITE: %d\n", write( fd, aBuf, IOUNIT ) );
- printf("READ: %d\n", read( fd, aBuf, IOUNIT ) );
- close(fd);
- free(nBuf);
- }
'Programming > Linux_Kernel' 카테고리의 다른 글
filesystem 잡다한 내용 (0) | 2017.06.13 |
---|---|
batched discard - ext4 (0) | 2017.01.03 |
use fallocate in Android system (0) | 2015.04.06 |
linux kernel 이 지원하는 system call list 보기 (0) | 2015.04.06 |
vmalloc 대신에 kalloc 을 주로 사용하는 이유는? (0) | 2015.04.02 |