zoukankan      html  css  js  c++  java
  • mq_notify

    NAME

    mq_notify - 通知进程可以接收一条消息 (REALTIME)

    SYNOPSIS

    #include <mqueue.h>
    
    int mq_notify(mqd_t mqdes, const struct sigevent *notification);

     

    Data Structure

    struct sigevent 的详细定义请参见 :http://www.cnblogs.com/LubinLew/p/POSIX-DataStructure.html#sigevent

    DESCRIPTION

    如果参数 notification 不为空, 这个函数会在调用进程注册一个异步通知函数,通知注册进程 空的消息队列中有消息到达了.

    当消息队列从空到非空状态变化时,通知就会发送到注册的进程.

    任何时候, 一个消息队列只能被一个进程注册通知. 如果之前调用进程或者其他进程已经注册过了,那么随后调用本函数注册通知会返回失败.

    如果参数 notification 是 NULL 并且这个进程之前注册过了通知函数, 那么这个注册会被删除,其他进程就可以在这个消息队列上注册通知.

    当一个消息队列从空变成非空,并且这个消息队列被注册了通知,并且一些线程被函数 mq_receive() 或者mq_timedreceive() 阻塞了,

    到达的消息会被适当的发送给 mq_receive() 或者 mq_timedreceive() ,不会发送通知(结果就像消息队列仍然是空的).

    PARAMETERS

    mqdes [IN]

    消息队列的描述符

    notification [IN]

    struct sigevent 类型结构体指针,用来注册通知函数,当该参数被设置为NULL时,会取消调用进程之前注册的通知。

    详细参数Data Structure 一节

    RETURN VALUE

    如果函数执行成功, 函数返回0

    如果函数执行失败,函数返回 -1 并且设置errno,errno的种别详见下面的ERRORS一节.

    ERRORS

    [EBADF]

    参数 mqdes 不是有效的消息队列描述符.

    [EBUSY]

    一个进程已经在这个消息队列上注册了通知函数.

    [EINVAL]

    参数notification 是NULL 并且 当前进程没有注册通知函数.

     

    EXAMPLES

  • 相关阅读:
    随便瞎说
    第六次作业
    第五次作业
    第四次作业
    第二次作业
    第一周java心得
    Ext.Net学习笔记之动态加载TabPanel
    Ext.net学习笔记之ViewPort布局
    MyEclipse连接mySql数据库笔记
    配置服务器
  • 原文地址:https://www.cnblogs.com/LubinLew/p/POSIX-mq_notify.html
Copyright © 2011-2022 走看看