引言 有一次心血来潮,突然想研究一下进程间的通信,能够实现消息传递的方法有几种,其中win32api中的sendmessage就是当中的一种比较简单的方法。于是参考了网上各种资料,做了一个小demo。发送方Winform 1.新建一个Winform项目,添加控件,如下2.界面做好,接着来编写代码,首...
共享内存是LUNIX 系统中最底层的通信机制,也是最快速的通信机制。共享内存是由内核出于在多个进程间交换信息目的而留出的一块内存区(段)。如果段的权限设置恰当,每个要访问段内存的进程都可以把它映射到自己的私有空间中,如果一个进程更新了段中的数据,另外的进程也可以看的到,一个进程创建的段,其他进程也可...
分类:
系统相关 时间:
2015-03-17 14:04:25
阅读次数:
160
有名管道只有当一个库函数失败时,errno才会被设置。当函数成功运行时,errno的值不会被修改。这意味着我们不能通过测试errno的值来判断是否有错误存在。反之,只有当被调用的函数提示有错误发生时检查errno的值才有意义。查看错误代码errno是调试程序的一个重要方法。当linux C api函...
分类:
系统相关 时间:
2015-03-17 13:57:27
阅读次数:
191
信号信号是在软件层次上对中断机制的一种模拟,在原理上,一个进程收到一个信号与处理器收到一个中断请求可以说是一样的。信号是异步的,一个进程不必通过任何操作来等待信号的到达,事实上,进程也不知道信号到底什么时候到达。信号是进程间通信机制中唯一的异步通信机制,可以看作是异步通知,通知接收信号的进程有哪些事...
分类:
系统相关 时间:
2015-03-17 13:47:57
阅读次数:
243
1.memcmp可否用来比较结构体?strcmp和memcpy的区别?
2.软中断和硬中断的区别?
3.进程间通信的几种方式?
4.kmalloc和vmalloc差别?
5.应用层的mmap和内核态的vmalloc对内存访问的差别?
6.用户态是否可以直接访问内核态内存?
7.PCIe中MSI中断如何触发?
8.怎么知道一个文件的大小?
9.spin_lock在单核和多核模式下的区...
分类:
系统相关 时间:
2015-03-17 00:53:02
阅读次数:
190
.so共享库相当于window中的.DLL文件两个进程同时调用了.so文件,进程就会加载的.so文件到各自的内存空间,而不能实现进程间通讯。.so文件编译的方法:-so文件不需要main文件,即使有也不会被执行。-编译gcc时候需要加-fPIC选项,可以产生与位置无关的代码。(首地址,偏移地址)-链...
分类:
其他好文 时间:
2015-03-16 14:21:47
阅读次数:
106
进程间通信本文转自:http://blog.csdn.net/xiaowei_cqu/article/details/7041212程序源码及实验报告文档下载:http://download.csdn.net/detail/xiaowei_cqu/3880949命名管道进程间通信的一种方式,Pipe...
常用IPC有:1:管道2:命名管道(FIFO)3:共享存储4:套接字5:信号量6:消息队列7:信号管道 只允许亲缘进程间的通讯。命名管道(FIFO) 除了亲缘进程可以通讯外,非亲缘进程也可以通讯。共享内存 多个进程可以访问同一块内存空间,是最快的IPC方式。在进程间传递数据时无须任何内存的拷贝 。可...
分类:
系统相关 时间:
2015-03-15 18:17:54
阅读次数:
185
进程间通讯的方式:
管道中还有命名管道和非命名管道之分,非命名管道只能用于父子进程通讯,命名管道可用于非父子进程,命名管道就是FIFO,管道是先进先出的通讯方式。FIFO是一种先进先出的队列。它类似于一个管道,只允许数据的单向流动。每个FIFO都有一个名字,允许不相关的进程访问同一个FIFO,因此也成为命名管。消息队列:是用于两个进程之间的通讯,首先在一个进程中创建一个消息队列,然后再往消息...
分类:
系统相关 时间:
2015-03-15 09:36:43
阅读次数:
270
进程间通信方式
传递数据的方式
1.pipe
必须是有亲缘关系的进程之间使用,平时用"ls | grep abc"等命令时用得就是这个,这个"|"我猜测是用了两种系统调用实现,一个是pipe(popen),一个是dup2,没有看过bash或sh的源码,只是猜测。
2.fifo
会在文件...
分类:
编程语言 时间:
2015-03-15 09:31:35
阅读次数:
265