日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

linux共享内存示例,linux 进程间共享内存示例

發布時間:2025/3/11 38 豆豆
生活随笔 收集整理的這篇文章主要介紹了 linux共享内存示例,linux 进程间共享内存示例 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

寫入端:

#include

#include

#include

#include

#include

using namespace std;

struct MappingDataType {

int mappingData;

};

bool SetUsedPID(string mappingName)

{

void *shm = NULL;

MappingDataType *shared;

int shmid = shmget((key_t), sizeof(MappingDataType), |IPC_CREAT);

if(shmid == -)

{

fprintf(stderr, "shmget failed\n");

return false;

}

shm = shmat(shmid, , );

if(shm == (void*)-)

{

fprintf(stderr, "shmat failed\n");

return false;

}

shared = (MappingDataType*)shm;

shared->mappingData = ::getpid();

/*if(shmdt(shm) == -1)

{

fprintf(stderr, "shmdt failed\n");

return false;

}

if(shmctl(shmid, IPC_RMID, 0) == -1)

{

fprintf(stderr, "shmctl(IPC_RMID) failed\n");

return false;

}*/

return true;

}

int main(int argc, char *argv[])

{

bool result = SetUsedPID("abc");

//打斷點,運行讀取端

cout << result << endl;

return ;

}

讀取端:

#include

#include

#include

#include

#include

using namespace std;

struct MappingDataType {

int mappingData;

};

int GetUsedPID(string mappingName)

{

void *shm = NULL;

MappingDataType *shared;

int shmid = shmget((key_t), sizeof(MappingDataType), | IPC_CREAT);

if (shmid == -)

{

fprintf(stderr, "shmget failed\n");

return ;

}

shm = shmat(shmid, , );

if (shm == (void*)-)

{

fprintf(stderr, "shmat failed\n");

return ;

}

shared = (struct MappingDataType*)shm;

int pid = shared->mappingData;

if (shmdt(shm) == -)

{

fprintf(stderr, "shmdt failed\n");

}

if (shmctl(shmid, IPC_RMID, ) == -)

{

fprintf(stderr, "shmctl(IPC_RMID) failed\n");

}

return pid;

}

int main(int argc, char *argv[])

{

int pid = GetUsedPID("abc");

cout << pid << endl; //<================= Put a breakpoint here

return ;

}

Windows進程間共享內存通信實例

Windows進程間共享內存通信實例 抄抄補補整出來 采用內存映射文件實現WIN32進程間的通訊:Windows中的內存映射文件的機制為我們高效地操作文件提供了一種途徑,它允許我們在WIN32進程中保 ...

【VS開發】內存映射文件進程間共享內存

內存映射文件進程間共享內存 內存映射文件的另一個功能是在進程間共享數據,它提供了不同進程共享內存的一個有效且簡單的方法.后面的許多例子都要用到共享內存.共享內存主要是通過映射機制實現的.Windows ...

C&num; 進程間共享內存通信方式

從別處看到一篇文章做進程間通信很好使,唯一的問題是,需要注意using的用法,Using有個用法3, using 語句允許程序員指定使用資源的對象應當何時釋放資源.using 語句中使用的對象必須實現 ...

Linux 進程間通訊詳解一

進程間的通訊 兩臺主機間的進程通訊 --socket 一臺主機間的進程通訊 --管道(匿名管道,有名管道) --System V進程間通信(IPC)包括System V消息隊列,System V信號量 ...

【筆記】Linux進程間同步和進程綁定至特定cpu

#define _GNU_SOURCE #include #include #include

linux進程間的通信之 共享內存

一.共享內存介紹 共享內存是三個IPC(Inter-Process Communication)機制中的一個. 它允許兩個不相關的進程訪問同一個邏輯內存. 共享內存是在兩個正在進行的進程之間傳遞數據的 ...

Android系統匿名共享內存Ashmem(Anonymous Shared Memory)在進程間共享的原理分析

總結

以上是生活随笔為你收集整理的linux共享内存示例,linux 进程间共享内存示例的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。