linux C学习笔记02--共享内存

 

调试了下午,终于调通啦! 运行./c.out 输出共享内存中的内容,运行 ./c.out arg1 对共享内存区进行修改

下面先贴上main的代码: 

#include <signal.h>        //head file of define signal
#include <pthread.h>
#include <static_lib.h>
#include <errno.h>
#include <fcntl.h>
#include <unistd.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <sys/types.h>
#include <sys/mman.h>

extern int create_shm(char **shmptr);
int main(int argc,char* argv[])
{
   //IPC share memory
    char *shmptr;
    if(create_shm(&shmptr) == -1)
    {
        printf("create_shm error \n");
        return -1;        
    }
    if(argc > 1)
    {
    //do the second thing for share memory
        while(1)
        {
            printf("input str to share memory:");
            gets(shmptr);
        }
    }
    else
    {
        memcpy(shmptr,"hello",5);
        while(1)
        {
            sleep(2);
            printf("share memory is %s \n",shmptr);
       }
    }   
    return 0;
}

下面是共享内存创建的代码:

 

 运行效果:

 

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。