管道提供了一种进程间通讯的方法,匿名管道提供本地计算机上的进程间通讯,匿名管道为单向的,不能在网络上使用。它们只支持单一服务器实例。匿名管道对线程间通讯或是父子进程之间的通讯很是有用,对于后者,管道句柄能够轻松地传递给子进程(在子进程建立之时)。子进程能够继承父进程中建立的句柄,父子进程一一对应的关系不会被打乱。并且使用简单,父子进程能够双向通讯。服务器
一、GlobalLock函数的做用是对全局内存对象加锁,有个做用是将内存句柄换成指针类型的内存地址。用完后必定要调用GlobalUnLock解锁。网络
二、GetStdHandle函数得到标准输入、输出或者标准错误句柄,当调用CreateProcess建立一个子进程时,他将继承父进程中全部可继承的打开的句柄,可是没法分辨哪个是管道读句柄,哪个是管道写句柄,能够设置子进程的STARTUPINFO句柄的hStdInput和hStdOutput句柄来标示,特别注意的是CreateProcess一个子进程之后(建立一个新进程时,系统会为该进程创建一个进程内核对象和一个线程内核对象,而内核对象的使用都会有个计数,建立后计数值自动加一),若是不须要这些内核对象,老是调用CloseHandle关闭内核对象,防止计数不许。函数
三、匿名管道模式属于同步阻塞模式。连续读取的时候会阻塞,一直等到管道里有数据。spa