w906414195 2019-06-01 16:09 采纳率: 100%
浏览 690

shmat返回的地址一访问就段错误

{
    unsigned int iShmId = 0;
    unsigned int uiShmKey = 0x10724;
    unsigned int *ptest = RRM_PNULL;

    iShmId = shmget_wrapper(uiShmKey, 0, (IPC_CREAT | 0666));
    if (iShmId >= 0)
    {
        fprintf(stderr, "iShmId(%d) exist\n", iShmId);
        /* IF key exist then remove SHM*/
        shmctl_wrapper_ipc_rmid(iShmId);
    }

    /* Get the shared memory ID */
    iShmId = shmget_wrapper(uiShmKey, sizeof(unsigned int),(IPC_CREAT | 0666));
    if (0 > iShmId)
    {
        fprintf(stderr, "SHM(%d) get failed\n", uiShmKey);
        return;
    }

    /* Map Shared memory */
    ptest = (unsigned int *)shmat_wrapper(iShmId, RRM_PNULL, 0);   
    fprintf(stderr,"ptest(%p)", ptest);
    if ((void *)-1 == ptest)
    {
        fprintf(stderr,"SHM(%d) attach failed", uiShmKey);
        shmctl_wrapper_ipc_rmid(iShmId);
        iShmId = -1;
        return;
    }

    /* Initialize shared memory */
    memset(ptest, 0, sizeof(unsigned int));   
    fprintf(stderr,"SHMend", uiShmKey);
}
  • 写回答

0条回答 默认 最新

    报告相同问题?

    悬赏问题

    • ¥50 永磁型步进电机PID算法
    • ¥15 sqlite 附加(attach database)加密数据库时,返回26是什么原因呢?
    • ¥88 找成都本地经验丰富懂小程序开发的技术大咖
    • ¥15 如何处理复杂数据表格的除法运算
    • ¥15 如何用stc8h1k08的片子做485数据透传的功能?(关键词-串口)
    • ¥15 有兄弟姐妹会用word插图功能制作类似citespace的图片吗?
    • ¥200 uniapp长期运行卡死问题解决
    • ¥15 latex怎么处理论文引理引用参考文献
    • ¥15 请教:如何用postman调用本地虚拟机区块链接上的合约?
    • ¥15 为什么使用javacv转封装rtsp为rtmp时出现如下问题:[h264 @ 000000004faf7500]no frame?