
shm_attach 함수의 msgflg 매개변수는 공유 메모리 파일에 대한 메모리 매핑을 수행할 때 사용하는 플래그입니다. msgflg 매개변수는 다음과 같은 값을 가질 수 있습니다.
- SHM_RDONLY : 읽기 전용으로 메모리 매핑을 수행합니다.
- SHM_RND : 시작 주소가 공유 메모리 파일의 시작 주소보다 큰 경우, 공유 메모리 파일의 시작 주소를 시작 주소로 설정합니다.
- SHM_REMAP : 공유 메모리 파일의 크기를 변경할 때, 이전에 매핑된 메모리 영역을 유지합니다.
shm_attach 함수의 사용 예는 다음과 같습니다.
#hostingforum.kr
c
#include
#include
int main() {
// 공유 메모리 파일 열기
int fd = shm_open("/shared_memory", O_RDWR, 0644);
// 공유 메모리 파일에 대한 메모리 매핑
void* ptr = shm_attach(fd, 0, 0, SHM_RDONLY);
// 메모리 매핑된 영역에 접근
printf("%pn", ptr);
// 메모리 매핑 해제
shm_detach(ptr);
return 0;
}
이 예제에서는 공유 메모리 파일 "/shared_memory"을 열고, 읽기 전용으로 메모리 매핑을 수행합니다. 메모리 매핑된 영역에 접근하고, 메모리 매핑을 해제합니다.
2025-07-26 03:33