第二十三天--[消息队列-共享内存]

学习内容:

管道-命名管道(2/2)、消息队列、共享内存

收获:

管道-命名管道(2/2)
  • 了解了打开FIFO时,指定O_NONBLOCK时的影响;


    FIFO_01

    FIFO_02
消息队列
  • 了解了消息队列的概念;
  • 了解了IPC通信机制中key值的作用以及获取方法:ftok();
  • 了解了消息队列的创建:int msgget(key_t, int msgflg)
  • 了解了使用shell命令操作消息队列:ipcs -qipcrm -q msqid
  • 了解了消息队列的格式:
typedef struct _msg
{
    long mtype;         /*消息类型,必须是长整型*/
    char mtetxt[100];   /*消息正文*/
    ...     /*消息正文可以有多个成员*/
}MSG;
  • 了解了消息队列发送消息和接受消息:msgsnd()、msgrcv();
  • 了解了消息队列的控制:msgctl();
消息队列_01

消息队列_02

key值

msgsnd_01

msgsnd_02

msgrcv_01

msgrcv_02

msgrcv_03

msgctl_01

msgctl_02
共享内存
  • 了解了共享内存的概念;
  • 了解了创建或打开一块共享内存:shmget();
  • 了解了使用shell命令操作共享内存:ipcs -mipcrm -m shmid
  • 了解了共享内存的映射(attach):shmat();
  • 了解了解除共享内存的映射(detach):shmdt();
  • 了解了共享内存的控制:shmctl();
共享内存_01

共享内存_02

共享内存_03

shmget

shmat_01

shmat_02

shmat_03

shmdt

shmctl_01

shmctl_02

shmctl_03

你可能感兴趣的:(第二十三天--[消息队列-共享内存])