注册 | 登录
收藏 | 帮助
热门文章
编辑推荐
相关文章  
防病毒必务宝典—计算机病毒专杀
高手支招 巧妙利用系统进程手工杀
清除不明进程msser 珊瑚QQ病毒防
巧妙利用系统进程拒绝病毒侵袭
杀毒全接触:关于mcafee的进程了
ORACLE实例的进程结构和内存结构
存储过程编写经验和优化措施
Windows 2000 常用系统进程列表
Windows 2000进程细述
详细分析进程 手工搞定可疑病毒
您现在的位置: 顶尖设计 >> IT学院 >> 编程开发 >> C >> 文章正文
多进程编程
作者:佚名  来源:不详  点击:  更新:2006-12-19
简介:
时间秒数.
        例子:int flag=0;
             void myself()
             {
                 flag=1;
                 printf("get signal SIGALRM\n");
                 /*若要重新设置SIGALRM信号中断处理函数为本函数则执行
                  *以下步骤*/
                 void (*a)();
                 a=myself;
                 signal(SIGALRM,a);
                 flag=2;
             }
             main()
             {
                 alarm(100);       /*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 
             #include 
             #include 
             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)改为当前系统时间.
             以上信息可用命令ipcs -a看到.
        返回值:成功则返回0,否则返回-1.
    14.msgrcv()
        功能:从消息队列中取得指定类型的消息.
        语法:#include 
             #include 
             #include 
             int msgrcv(msqid,msgp,msgsz,msgtyp,msgflg)
             int msqid;
             void *msgp;
             int msgsz;
             long msgtyp;
             int msgflg;
        说明:本系统调用从由msqid指定的消息队列中读取一个由msgtyp指定
             类型的消息到由msgp指向的缓冲区中,同样的,该缓冲区的结构如
             前所述,包括消息类型和消息正文.msgsz为可接收的消息正文的
             字节数.若接收到的消息正文的长度大于msgsz,则会被截短到
             msgsz字节为止(当消息标志msgflg&MSG_NOERROR为真时),截掉的
             部份将被丢失,而且不通知消息发送进程.
             msgtyp指定消息类型:
             . 为0则接收消息队列中第一个消息.
             . 大于0则接收消息队列中第一个类型为msgtyp的消息.
             . 小于0则接收消息队列中第一个类型值不小于msgtyp绝对值且
               类型值又最小的消息.
             msgflg指定操作行为:
             . 若(msgflg&IPC_NOWAIT)是真的,调用进程会立即返回,若没有
               接收到消息则返回值为-1,errno设置为ENOMSG.
             . 若(msgflg&IPC_NOWAIT)不是真的,则调用进程会被挂起直到下
               面情况之一发生:
        

上一页  [1] [2] [3] [4] [5] [6] 下一页






  • 上一篇文章:
  • 下一篇文章:
  • 分享此文:该页面添加到 Mister Wong 添加到雅虎Yahoo!收藏 Add to:Del.icio.us Post to Furl Digg this 添加到Google书签 reddit spurl blogmarks 365Key 评论  收藏  分享  打印
     我来说两句
    姓名:       验证码:   
    主页: 
    评分: 1分 2分 3分 4分 5分
    本频道近期热评文章:
      关于我们 | 联系我们 | 站点地图 | 广告投放 | 友情链接 | 在线留言 | 版权申明
    版权所有 © 2004-2007 顶尖设计(bobd.cn)
    未经授权禁止转载,摘编,复制本站内容或建立镜像. 沪ICP备07504942号 
    网络110
    报警服务