共享内存
SharedMemoryCreate
- 位置
sys_shared_memory.aclib
- 功能说明
创建共享内存对象,如果已存在同名对象则返回该对象的句柄。
- 参数说明
输入参数 | 数据类型 | 描述 | 常量 |
---|---|---|---|
pszName | STRING | 共享内存名称 | × |
pucPhysicalAddress | POINTER TO BYTE | 共享内存关联地址(Windows系统下无效) | |
uiSize | DWORD | 共享内存大小 | |
error_code | shared_memory_error_code | 错误码 |
输出参数 | 数据类型 | 描述 | 常量 |
---|---|---|---|
SharedMemoryCreate | POINTER TO BYTE | 返回共享内存句柄 | × |
- 示例
例如创建一个名字为'sharemem_ac'的共享内存对象,则操作方式如下:
CFC示例
ST示例
SharedMemoryOpen
- 位置
sys_shared_memory.aclib
- 功能说明
打开共享内存对象,返回该对象的句柄。
- 参数说明
输入参数 | 数据类型 | 描述 | 常量 |
---|---|---|---|
pszName | STRING | 共享内存名称 | × |
pucPhysicalAddress | POINTER TO BYTE | 共享内存关联地址(Windows系统下无效) | |
uiSize | DWORD | 共享内存大小 | |
error_code | shared_memory_error_code | 错误码 |
输出参数 | 数据类型 | 描述 | 常量 |
---|---|---|---|
SharedMemoryOpen | POINTER TO BYTE | 返回共享内存句柄 | × |
- 示例
例如打开一个名字为'sharemem_ac'的共享内存对象,则操作方式如下:
CFC示例
ST示例
SharedMemoryRead
- 位置
sys_shared_memory.aclib
- 功能说明
读共享内存对象。
- 参数说明
输入参数 | 数据类型 | 描述 | 常量 |
---|---|---|---|
hShm | POINTER TO BYTE | 共享内存句柄 | × |
ulOffset | DWORD | 读取共享内存的偏移 | × |
pbyData | POINTER TO BYTE | 用户缓存,保存从共享内存中读取的数据 | × |
uiSize | DWORD | 读取长度 | × |
error_code | shared_memory_error_code | 错误码 | × |
输出参数 | 数据类型 | 描述 | 常量 |
---|---|---|---|
SharedMemoryRead | DINT | 读取的数据长度,失败时返回-1 | × |
- 示例
例如从共享内存对象偏移为10字节开始读取10个字节,则操作方式如下:
CFC示例
ST示例
SharedMemoryWrite
- 位置
sys_shared_memory.aclib
- 功能说明
写共享内存对象。
- 参数说明
输入参数 | 数据类型 | 描述 | 常量 |
---|---|---|---|
hShm | POINTER TO BYTE | 共享内存句柄 | × |
ulOffset | DWORD | 写入共享内存的偏移 | × |
pbyData | POINTER TO BYTE | 用户缓存,保存要写入共享内存中的数据 | × |
uiSize | DWORD | 写入长度 | × |
error_code | shared_memory_error_code | 错误码 | × |
输出参数 | 数据类型 | 描述 | 常量 |
---|---|---|---|
SharedMemoryWrite | DINT | 写入的数据长度,失败时返回-1 | × |
- 示例
例如向共享内存对象起始地址开始写入100个字节,则操作方式如下:
CFC示例
ST示例
SharedMemoryGetPointer
- 位置
sys_shared_memory.aclib
- 功能说明
获取共享内存的内存地址。
- 参数说明
输入参数 | 数据类型 | 描述 | 常量 |
---|---|---|---|
hShm | POINTER TO BYTE | 共享内存句柄 | × |
error_code | shared_memory_error_code | 错误码 | × |
输出参数 | 数据类型 | 描述 | 常量 |
---|---|---|---|
SharedMemoryGetPointer | POINTER TO BYTE | 返回共享内存的内存地址 | × |
- 示例
例如获取共享内存的内存地址,则操作方式如下:
CFC示例
ST示例
SharedMemoryClose
- 位置
sys_shared_memory.aclib
- 功能说明
关闭共享内存对象,如果该共享内存没有其他进程与其关联则将该对象内存释放。
- 参数说明
输入参数 | 数据类型 | 描述 | 常量 |
---|---|---|---|
hShm | POINTER TO BYTE | 共享内存句柄 | × |
输出参数 | 数据类型 | 描述 | 常量 |
---|---|---|---|
SharedMemoryClose | DINT | 返回关闭共享内存是否成功,0:成功,其它:失败。 | × |
- 示例
例如关闭共享内存对象,则操作方式如下:
CFC示例
ST示例
共享内存使用示例
共享内存写入示例
(例程路径:安装目录\example\sharedMemory)
以下内容展示了创建并打开共享内存对象,并向共享内存中写入用户数据。
共享内存读取示例
以下内容展示了创建并打开共享内存对象,并从共享内存中读取用户数据。
方式1:通过SharedMemoryRead函数实现读取
方式2:通过SharedMemoryGetPointer获取共享内存的地址,通过MEMCPY来获取共享内存的数据
AnyControl在Linux系统中使用 POSIX共享内存(shm_open()、mmap()、munmap()、shm_unlink())接口,如果需要和其他进程通讯,请使用相同接口。 | |
---|---|
更加丰富的调用示例请参见AnyControl中的示例工程- sharedMemory。 | |
---|---|