"리눅스 매뉴얼 페이지 mmap(2)"의 두 판 사이의 차이

 
(같은 사용자의 중간 판 하나는 보이지 않습니다)
1번째 줄: 1번째 줄:
==개요==
==개요==
;mmap(2) — 리눅스 매뉴얼 페이지
;mmap(2) — 리눅스 매뉴얼 페이지
* https://man7.org/linux/man-pages/man2/mmap.2.html


리눅스 시스템에서 파일이나 장치의 내용을 프로세스의 주소 공간에 매핑하는 시스템 호출입니다. 이를 통해 파일이나 장치의 데이터에 대한 메모리 접근 방식을 사용하여 직접적으로 읽거나 쓸 수 있습니다. 이 기능은 효율적인 메모리 관리와 빠른 데이터 처리를 가능하게 합니다.
리눅스 시스템에서 파일이나 장치의 내용을 프로세스의 주소 공간에 매핑하는 시스템 호출입니다. 이를 통해 파일이나 장치의 데이터에 대한 메모리 접근 방식을 사용하여 직접적으로 읽거나 쓸 수 있습니다. 이 기능은 효율적인 메모리 관리와 빠른 데이터 처리를 가능하게 합니다.
https://man7.org/linux/man-pages/man2/mmap.2.html


==이름==
==이름==

2024년 3월 2일 (토) 13:31 기준 최신판

1 개요[ | ]

mmap(2) — 리눅스 매뉴얼 페이지

리눅스 시스템에서 파일이나 장치의 내용을 프로세스의 주소 공간에 매핑하는 시스템 호출입니다. 이를 통해 파일이나 장치의 데이터에 대한 메모리 접근 방식을 사용하여 직접적으로 읽거나 쓸 수 있습니다. 이 기능은 효율적인 메모리 관리와 빠른 데이터 처리를 가능하게 합니다.

https://man7.org/linux/man-pages/man2/mmap.2.html

2 이름[ | ]

mmap, munmap - 파일이나 장치를 메모리에 매핑하거나 매핑 해제합니다.

3 라이브러리[ | ]

표준 C 라이브러리( libc , -lc )

4 시놉시스[ | ]

#include <sys/mman.h>

void *mmap(void addr[.length], size_t length, int prot, int flags, int fd, off_t offset);
int munmap(void addr[.length], size_t length);

기능 테스트 매크로 요구 사항에 대한 자세한 내용은 #참고를 참조하세요.

5 설명[ | ]

mmap()는 호출 프로세스의 가상 주소 공간에 새로운 매핑을 생성합니다. 새 매핑의 시작 주소는 addr에서 지정되며, length 인자는 매핑의 길이를 지정합니다(0보다 커야 함).

addr이 NULL이면, 커널이 매핑을 생성할 (페이지 정렬된) 주소를 선택합니다; 이것은 새 매핑을 생성하는 가장 이식성 높은 방법입니다. addr이 NULL이 아니면, 커널은 매핑을 배치할 위치에 대한 힌트로서 그것을 받아들이며, 리눅스에서는 커널이 근처의 페이지 경계를 선택하고(항상 /proc/sys/vm/mmap_min_addr에 의해 지정된 값 이상이거나 같음) 그곳에 매핑을 시도합니다. 만약 그곳에 다른 매핑이 이미 존재한다면, 커널은 힌트에 의존할 수도 있고 그렇지 않을 수도 있는 새로운 주소를 선택합니다. 새 매핑의 주소는 호출의 결과로 반환됩니다.

파일 매핑(익명 매핑과 대조적으로; MAP_ANONYMOUS 아래 참조)의 내용은, 파일 설명자 fd가 가리키는 파일(또는 다른 객체)에서 offset에서 시작하는 length 바이트를 사용하여 초기화됩니다. offset은 sysconf(_SC_PAGE_SIZE)에 의해 반환된 페이지 크기의 배수여야 합니다.

mmap() 호출이 반환된 후에는, 파일 설명자 fd는 매핑을 무효화하지 않고 즉시 닫을 수 있습니다.

6 반환 값[ | ]

7 오류[ | ]

8 속성[ | ]

9 버전[ | ]

10 표준[ | ]

POSIX.1-2008.

11 역사[ | ]

POSIX.1-2001, SVr4, 4.4BSD.

mmap(), msync(2), munmap()을 사용할 수 있는 POSIX 시스템에서는 _POSIX_MAPPED_FILES가 <unistd.h>에 0보다 큰 값으로 정의됩니다. (sysconf(3)도 참조하세요.)

12 참고[ | ]

13 버그[ | ]

14 예시[ | ]

15 같이 보기[ | ]

proc(5)에 다음 파일에 대한 설명: /proc/pid/maps, /proc/pid/map_files, /proc/pid/smaps

문서 댓글 ({{ doc_comments.length }})
{{ comment.name }} {{ comment.created | snstime }}