设为首页 加入收藏

TOP

多进程编程(十六)
2012-08-26 13:53:26 来源: 作者: 【 】 浏览:13315
Tags:进程 编程
nbsp;            pint=(int*)addr1;
                 for (i=0;i<256;i++)
                     *pint++=i;
                 pint=(int*)addr1;
                 *pint=256;
                 pint=(int*)addr2;
                 for (i=0;i<256;i++)
                     printf("index %d\tvalue%d\n",i,*pint++);
                 shmdt(addr1);
                 shmdt(addr2);
                 pause();
             }
    21.semctl()
        功能:信号量控制操作.
        语法:#include <sys/types.h>
             #include <sys/ipc.h>
             #include <sys/sem.h>
             int semctl(semid,memnum,cmd,arg)
             int semid,semnum,cmd;
             union semun {
                   int val;
                   struct semid_ds *buf;
                   ushort *array;
             }arg;
        说明:本系统调用提供了一个信号量控制操作,操作行为由cmd定义,这
             些命令是对由semid和semnum指定的信号量做操作的.每个命令都
             要求有相应的权限级别:
             . GETVAL:返回semval的值,要求有读权限.
             . SETVAL:设置semval的值到arg.val上.此命令成功执行后,
                  semadj的值对应的所有进程的信号量全部被清除,要求有修
                  改权限.
             . GETPID:返回sempid的值,要求有读权限.
             . GETNCNT:返回semncnt的值,要求有读权限.
             . GETZCNT:返回semzcnt的值,要求有读权限.
             以下命令在一组信号量中的各个semval上操作:
             . GETALL:返回每个semval的值,同时将各个值放入由arg.array
                 指向的数组中.当此命令成功执行后,semadj的值对应的所有
                 进程的信号量全部被清除,要求有修改权限.
             . SETALL:根据由arg.array指向的数组设置各个semval值.当此
                 命令成功执行后,semadj的值对应的所有进程的信号量全部
                 被清除,要求有修改权限.
             以下命令在任何情况下都是有效的:
             . IPC_STAT:将与semid相关的数据结构的各个成员的值放入由
                 arg.buf指向的结构中.要求有读权限.
            &nbs
首页 上一页 13 14 15 16 17 18 19 下一页 尾页 16/25/25
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇Core Dump?! 下一篇字符串转换篇

评论

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