- 1、本文档共94页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第六讲 UNIX进程通信 1 基本概念 1 基本概念 1 基本概念 1 基本概念 2 UNIX系统进程通信方式 2 UNIX系统进程通信方式 3 信号处理 3 信号处理 3 信号处理 3 信号处理 3 信号处理 3 信号处理 3 信号处理 3 信号处理 3 信号处理 3 信号处理 3 信号处理 3 信号处理 3 信号处理 #include signal.h void catch_sig_int( ing signo ) { /* signal( SIGINT, catch_sig_int );*/ printf(“SIGINT was caught,user pressed key[delete]\n”); /* signal( SIGINT, catch_sig_int );*/ } void main() { int i = 0; signal( SIGINT, catch_sig_int ); for( i=0; i5; i++ ) { printf(“ Sleep called #%d\n”, i ); sleep(1); } printf(“exiting..\n”); } 3 信号处理 3 信号处理 3 信号处理 3 信号处理 3 信号处理 3 信号处理 3 信号处理 3 信号处理 3 信号处理 4 管 道 通 信 4 管 道 通 信 4 管 道 通 信 4 管 道 通 信 4 管 道 通 信 4.1 无 名 管 道 4.1 无 名 管 道 4.1 无 名 管 道 4.1 无 名 管 道 4.1 无 名 管 道 4.2 有 名 管 道 4.2 有 名 管 道 4.2 有 名 管 道 4.2 有 名 管 道 4.2 有 名 管 道 4.2 有 名 管 道 4.2 有 名 管 道 4.2 有 名 管 道 4.2 有 名 管 道 4.2 有 名 管 道 4.2 有 名 管 道 4.2 有 名 管 道 5 IPC 5 IPC 5 信号和消息的比较 5.1 IPC消息队列 5.1 IPC消息队列 5.1 IPC消息队列 5.1 IPC消息队列 5.1 IPC消息队列 5.1 IPC消息队列 5.2 信 号 量 5.2 信 号 量 5.2 信 号 量 5.2 信 号 量 5.2 信 号 量 5.2 信 号 量 5.2 信 号 量 5.2 信 号 量 5.2 信 号 量 5.2 信 号 量 5.2 信 号 量 5.2 信 号 量 5.2 信 号 量 5.2 信 号 量 5.3 共 享 存 储 5.3 共 享 存 储 5.3 共 享 存 储 5.3 共 享 存 储 5.3 共 享 存 储 5.3 共 享 存 储 5.3 共 享 存 储 5.3 共 享 存 储 5.3 共 享 存 储 5.3 共 享 存 储 while( running ) { if( msgrcv( msgid, (void *)msgbuf, 256, 1, 0) == -1) // 错误处理 printf(“you wrote: %s”, msgbuf.text ); if( strncmp( msgbuf.txt, “end” , 3 ) = = 0 ) running = 0; } if( msgctl( msgid, IPC_RMID, 0 ) == -1 ) // 错误处理 exit( 0 ); } // program2.c #include sys/types.h #include sys/ipc.h #include sys/Msg.h struct my_msg { long mytype; char text[256]; }; void main() { int running = 1; int msgid; struct my_msg msgbuf; msgid = msgget( ( key_t )1234, IPC_CREAT|0666 ); if( msgid 0 ) exit(1); while( running ) { printf(“Enter some text :”); gets( msgbuf.text ); msgbuf.mytype = 1; if( (msgsnd( msgid, (void*)msgbuf, 256, 0
文档评论(0)