在C++中使用mmap()實現進程間共享內存的方法如下:
1. 包含頭文件:
```cpp
#include
#include
#include
#include
```
2. 打開一個共享內存對象:
```cpp
int fd = open("/tmp/shared_memory", O_CREAT|O_RDWR, 0666);
if(fd == -1) {
perror("open");
exit(1);
}
```
3. 設置共享內存的大小:
```cpp
int size = 4096;
ftruncate(fd, size);
```
4. 映射共享內存到進程的地址空間:
```cpp
void* shared_memory = mmap(NULL, size, PROT_READ|PROT_WRITE, MAP_SHARED, fd, 0);
if(shared_memory == MAP_FAILED) {
perror("mmap");
exit(1);
}
```
5. 寫入共享內存:
```cpp
strcpy((char*)shared_memory, "Hello, shared memory!");
```
6. 解除映射并關閉文件描述符:
```cpp
munmap(shared_memory, size);
close(fd);
```
上述代碼演示了如何使用mmap()實現進程間共享內存的基本步驟。在實際應用中,需要注意多個進程之間對共享內存的訪問控制,避免數據競爭等問題。