父子进程间通信---通过设置环境变量
来源:互联网 发布:什么叫网络投资 编辑:程序博客网 时间:2024/06/05 02:14
父进程向其环境块添加一个环境变量,变量的名称应该是子进程知道的一个名称,然后当父进程生成子进程的时候,这个子进程会继承父进程的环境变量,所以能轻松调用GetEnvironmentVariable来获得这个环境变量的值。如果子进程还要生成另一个子进程,这种方式就应该非常不错,因为环境变量是可以反复继承的。
代码举例:
父进程:
#include "stdafx.h"#include "windows.h"#include "iostream"using namespace std;int _tmain(int argc, _TCHAR* argv[]){LPCTSTR lpName(_T("zzc")); LPCTSTR lpValue(_T("88888")); //设置环境变量的值::SetEnvironmentVariable(lpName,lpValue); STARTUPINFO si; PROCESS_INFORMATION pi; ZeroMemory(&si, sizeof(si)); ZeroMemory(&pi, sizeof(pi));if( !CreateProcess( _T("D:\\绘图编程\\Parent\\Debug\\Child.exe"), NULL, NULL, NULL, TRUE,0, NULL, NULL, &si, &pi) ) { cout <<"shibai" <<endl;} else{cout << "chenggong" << endl;}return 0;}
子进程:
#include "stdafx.h"#include "windows.h"#include "iostream"using namespace std;int _tmain(int argc, _TCHAR* argv[]){LPCTSTR lpName(_T("zzc")); int nlength = ::GetEnvironmentVariable(lpName,NULL,0); LPTSTR lpValue = new TCHAR[nlength+1]; memset(lpValue,'\0',nlength+1); ::GetEnvironmentVariable(lpName,lpValue,nlength+1);setlocale(LC_ALL, "chs");_tprintf(lpValue);cout << endl;system("pause");return 0;}
注:CreateProcess()参数5:
表示新进程是否从调用进程处继承了内核对象句柄。如果参数的值为 TRUE,调用进程中的每一个可继承的内核对象句柄都将被子进程继承,这样我们可以通过环境变量的形式将所继承的某个句柄值传递给子进程,子进程就可以通过收到的句柄值对内核对象进行操作了,被继承的句柄与原进程拥有完全相同的值和访问权限;如果设为 FALSE,那么不继承。
阅读全文
0 0
- 父子进程间通信---通过设置环境变量
- 父子进程间通信
- 简单的,父子进程间通过消息队列通信。
- fork()+pipe() --> 父子进程间通过管道通信
- 父子进程间信号通信
- C/C++ 日常学习总结(第二十三篇)父子进程间通信——环境变量
- UNIX环境高级编程学习之第十五章进程间通信 - 通过半双工匿名管道实现父子进程通信
- 通过父子进程实现消息队列的互相通信
- linux c之通过管道父子进程实现同步通信
- 父子进程间的单向管道通信
- 匿名管道 父子进程间通信
- python之父子进程间通信
- 父子进程间的共享内存通信
- Nginx---父子进程通信
- 父子进程通信
- UNIX环境高级编程学习之第十五章进程间通信 - 通过匿名管道实现父子进程同步
- 09-进程间通信-无名管道(父子进程间)
- Windows下利用C语言程序设置环境变量---能否用环境变量实现进程间的通信?
- QT控件大全 三十一 QReflex
- rocket mq windows环境下部署
- SuperSocket 入门,实现客户端和服务端消息互发
- Oracle 查询数据库有多少张表
- [转载]kaldi学习笔记:run.sh(egs/timit/s5)详细分析:从数据准备到特征提取
- 父子进程间通信---通过设置环境变量
- Eclipse 常用设置
- SQL truncate 、delete与drop区别
- HDOJ1393 Weird Clock
- 这七种迹象,暗示你的生活正慢慢变好
- 使用AntiSamy防范XSS跨站脚本攻击
- JACK_C#_游戏英雄武器和攻击
- SIM7600CE TCP success AT
- STM32——SPI接口