- 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
信号处理函数 #includesignal.h int sigaction(int __sig, __const struct sigaction *__restrict __act, struct sigaction *__restrict __oact); 功能:类似signal(),但更健壮。 返回值:成功返回0,失败返回-1。 参数: __sig:要捕获的信号 __act:新的信号处理。 __oact:原先的信号处理。 struct sigaction { void (*sa_handler)(int); /* addr of signal handler, */ sigset_t sa_mask; /* additional signals to block */ int sa_flags; /* signal options, Figure 10.16 */ } 中程在线信息产业培训网 嵌入式Linux高级编程 主要内容: 1、为什么要有进程间通信 2、进程间通信的几种方式 进程间通信 进程间通信有如下一些目的: 数据传输:一个进程需要将它的数据发送给另一个进程。 共享数据:多个进程想要操作共享数据,一个进程对共享数据的修改,别的进程应该立刻看到。 通知事件:一个进程需要向另一个或一组进程发送消息,通知它(它们)发生了某种事件(如进程终止时要通知父进程)。 资源共享:多个进程之间共享同样的资源。为了作到这一点,需要内核提供锁和同步机制。 进程控制:有些进程希望完全控制另一个进程的执行(如Debug进程),此时控制进程希望能够拦截另一个进程的所有陷入和异常,并能够及时知道它的状态改变。 进程间通信 linux进程间通信(IPC)由以下几部分发展而来: 早期UNIX进程间通信、基于System V进程间通信、基于Socket进程间通信和POSIX进程间通信。 1、UNIX进程间通信方式包括:管道、FIFO、信号。 2、System V进程间通信方式包括:System V消息队列、System V信号灯、System V共享内存。 3、POSIX进程间通信包括:posix消息队列、posix信号灯、posix共享内存。 进程间通信 现在linux使用的进程间通信方式: (1)管道(pipe)和有名管道(FIFO) (2)消息队列 (3)共享内存 (4)信号量 (5)信号(signal) (6)套接字(socket) 管道通信 管道通信例如: ps | grep vsftpd 管道是单向的、先进先出的、无结构的、固定大小的字节流,它把一个进程的标准输出和另一个进程的标准输入连接在一起。写进程在管道的尾端写入数据,读进程在管道的首端读出数据。数据读出后将从管道中移走,其它读进程都不能再读到这些数据。管道提供了简单的流控制机制。进程试图读空管道时,在有数据写入管道前,进程将一直阻塞。同样,管道已经满时,进程再试图写管道,在其它进程从管道中移走数据之前,写进程将一直阻塞。 管道主要用于不同进程间通信。 管道通信 管道的局限性: 因为读数据的同时也将数据从管道移去,因此,管道不能用来对多个接收者广播数据。 管道中的数据被当作字节流,因此无法识别信息的边界。 如果一个管道有多个读进程,那么写进程不能发送数据到指定的读进程。同样,如果有多个写进程,那么没有办法判断是它们中那一个发送的数据。 管道函数 #include unistd.h int pipe(int fd[2]); 功能:创建一个简单的管道,若成功则为数组fd分配两个文件描述符,其中fd[0] 用于读取管道,fd[1] 用于写入管道。 返回值:成功返回0,失败返回- 1。 管道主要用于不同进程间通信。实际上,通常先创建一个管道,再通过fork函数创建一个子进程。 父子进程管道的文件描述符对应关系 子进程写入和父进程读的命名管道: 关闭父进程fd[1] 和 子进程[0] 命名管道(FIFO) 命名管道和一般的管道基本相同,但也有一些显著的不同: 命名管道是在文件系统中作为一个特殊的设备文件而存在的。 不同祖先的进程之间可以通过管道共享数据。 当共享管道的进程执行完所有的I / O操作以后,命名管道将继续保存在文件系统中以便以后使用。 管道只能由相关进程使用,它们共同的祖先进程创建了管道。但是,通过FIFO,不相关的进程也能交换数据。 共享内存 共享内存区域是被多个进程共享的一部分物理内存。如果多个进程都把该内存区域映射到自己的虚拟地址空间,则这些进程就都可以直接访问该共享内存区域,从而可以通过该区域进行通信。 共享内存是进程间共享数据的一种最快的方法,一
您可能关注的文档
最近下载
- 招标代理机构入围 投标方案(技术方案).docx
- GB 50017-2003 钢结构设计规范.docx VIP
- 2025年湖南劳动人事职业学院单招语文考试模拟试题及答案解析.pdf VIP
- 高中物理游标卡尺、千分尺、螺旋测微器读数习题.docx VIP
- 湖南劳动人事职业学院单招测试题(附解析)英语.pdf VIP
- 重磅——2017年全国卷文言文挖空训练学生版及教师版.pdf VIP
- 大班《闽南红砖古厝》.pptx VIP
- 2024贵州黔南州面向优秀村(社区)干部专项招聘乡镇(街道)事业单位工作人员35笔试备考题库及答案解析.docx VIP
- 2025共青团入团考试题库及完整答案.pdf
- 3 雪地里的小画家 课件(共21张PPT).pptx VIP
有哪些信誉好的足球投注网站
文档评论(0)