摘要:
试验 在一个进程内用 sigprocmask 堵塞 定义在 sigset中的信号#include "public.h"void myaction2(int sig,siginfo_t *info,void *reverse){for (int i=0;i<5;i++){printf("myaction2 = %d\n",i);sleep(1);}}int main(){int iFlag=0;pid_t pid;union sigval sival_data;struct sigaction action;action.sa_sigaction=m 阅读全文
摘要:
试验 struct sigaction 的 mask ,让他做到 在处理SIGUSR信号的时候,堵塞 SIGINT 和 SIGUSR2 信号(这两两个信号都是从fork出的子进程中发出来的)#include "public.h"void myaction(int sig,siginfo_t *info,void *reverse){int i=0;while (i<5){/*printf("i = %d sig=%d\n",i,sig);printf("recive value=%d\n",info->si_value.s 阅读全文
摘要:
在上一篇共享内存的基础上加上pv操作,也就是 A 进程去写 的时候要加上P 写完了 加个 Vpvread.cpp#include "public.h"union semun{int val;struct semid_ds *buf;unsigned short *array;struct seminfo *__buf;};int main(){SNode student;char buffer[20];pid_t pid=0;int i=1;int ret=0;//嵌入式信号量代码union semun mysemun;struct sembuf mysembuf;int 阅读全文
摘要:
在上一篇共享内存的基础上加上pv操作,也就是 A 进程去写 的时候要加上P 写完了 加个 Vpvwrite.cpp#include "public.h"union semun{int val;struct semid_ds *buf;unsigned short *array;struct seminfo *__buf;};int main(){SNode student;char buffer[20];pid_t pid=0;int i=1;int ret=0;//嵌入式信号量代码union semun mysemun;struct sembuf mysembuf;int 阅读全文
摘要:
1 编写 A 程序 往共享内存 写入 Student_T 结构体, B 程序往共享内存读 Student_T 结构体#include "public.h"int main(){SNode student;char buffer[20];pid_t pid=0;int i=1;int ret=0;//开辟一个可以存储10个学生信息的共享内存空间mem_no=shmget(MEM_KEY,10*MEM_SIZE,MEM_FLAG);if (mem_no==-1){printf("fail to shmget\n");exit(0);}//共享内存的周地址映射 阅读全文
摘要:
#include "public.h"int main(){mem_no=shmget(MEM_KEY,10*MEM_SIZE,MEM_FLAG);pstudent=(StuNodes)shmat(mem_no,NULL,0);pstudent_first=pstudent;pstudent_first2=pstudent;//读取数据for (int i=0;i<10;i++){printf("student.no=%d student.username=%s\n",pstudent_first->no,pstudent_first-> 阅读全文
摘要:
#include "public.h"void myaction(int sig,siginfo_t *info,void *reverse){int i=0;while (i<5){/*printf("i = %d sig=%d\n",i,sig);printf("recive value=%d\n",info->si_value.sival_int);printf("info->si_int=%d\n",info->si_int);printf("info->si_pid 阅读全文
摘要:
#include "public.h"void msg_show_attr(int msg_id,struct msqid_ds msg_info){int ret=-1;sleep(1);ret=msgctl(msg_id,IPC_STAT,&msg_info);//获取消息if (-1==ret){printf("获得消息信息失败\n");return ;}printf("\n");printf("现在队列中字节数:%d\n",msg_info.msg_cbytes);printf("队列中消 阅读全文
摘要:
http://www.cnblogs.com/leoo2sk/archive/2008/04/10/1146447.htmlhttp://www.cnblogs.com/leoo2sk/archive/2008/04/11/1148236.htmlhttp://www.cnblogs.com/leoo2sk/archive/2008/04/14/1151569.html 阅读全文
摘要:
http://www.cnblogs.com/floodpeak/archive/2008/02/27/1083533.html 阅读全文