메모리 매핑

hgh1472·2023년 12월 23일
0

memory mapping

file을 프로세스의 memory에 mapping

사용 방법

#include <sys/mman.h>
void *mmap(void *addr, size_t len, int prot, int flags, int fildes, off_t off);

fildes가 가리키는 파일에서 off로 지정한 위치부터 len 만큼의 데이터를 읽어 addr이 가리키는 메모리 공간에 매핑한다.

  • addr : 매핑할 메모리 주소
  • len : 메모리 공간의 크기
  • prot : 보호모드
    • PROT_READ : 읽기 허용
    • PROT_WRITE : 쓰기 허용
  • flags : 매핑된 데이터의 처리 방법을 저장하는 상수
    • MAP_SHARED : 변경 내용 공유
    • MAP_PRIVATE : 변경 내용 공유 X
  • fildes : file descriptor
  • off : file offset(페이지 크기의 배수)

파일 크기 변경

변경 방법

#include <unistd.h>
int truncate(const char *path, off_t len);
int ftruncate(int fildes, off_t len);

0개의 댓글