设为首页 加入收藏

TOP

多进程编程(十)
2012-08-26 13:53:26 来源: 作者: 【 】 浏览:13331
Tags:进程 编程
sp;   /*100秒后发超时中断信号*/
                 while (1) {
                     sleep(2000);  /*等待中断信号*/
                     if (flag==1) {
                         printf("skip system call sleep\n");
                         exit(0);
                     }
                     if (flag==2) {
                         printf("skip system call sleep\n");
                         printf("waiting for next signal\n");
                     }
                 }
             }
    13.msgsnd()
        功能:发送消息到指定的消息队列中.
        语法:#include <sys/types.h>
             #include <sys/ipc.h>
             #include <sys/msg.h>
             int msgsnd(msqid,msgp,msgsz,msgflg)
             int msqid;
             void *msgp;
             size_t msgsz;
             int msgflg;
        说明:发送一个消息到由msqid指定消息队列标识号的消息队列.
             参数msgp指向一个用户定义的缓冲区,并且缓冲区的第一个域应
             为长整型,指定消息类型,其他数据放在缓冲区的消息中其他正文
             区内.下面是消息元素定义:
               long mtype;
               char mtext[];
             mtype是一个整数,用于接收进程选择消息类型.
             mtext是一个长度为msgsz字节的任何正文,参数msgsz可从0到系
             统允许的最大值间变化.
             msgflg指定操作行为:
             . 若(msgflg&IPC_NOWAIT)是真的,消息并不是被立即发送而调用
               进程会立即返回.
             . 若(msgflg&IPC_NOWAIT)不是真的,则调用进程会被挂起直到下
               面情况之一发生:
                 * 消息被发送出去.
                 * 消息队列标志被系统删除.系统调用返回-1.
                 * 调用进程接收到一个未被忽略的中断信号,调用进程继续
                   执行或被终止.
             调用成功后,对应指定的消息队列的相关结构做如下动作:
             . 消息数(msg_qnum)加1.
             . 消息队列最近发送进程号(msg_lspid)改为调用进程号.
             . 消息队列发送时间(msg_stime)改为当前系统时间.
    &nbs
首页 上一页 7 8 9 10 11 12 13 下一页 尾页 10/25/25
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇Core Dump?! 下一篇字符串转换篇

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: