我正在创建一个错误注入框架,并希望做类似的事情:
volatile bool doFaultWriteError;
在我的代码中,我可以检查全局变量以决定是否出错。
在BSD中,我听说你可以教sysctl在用户空间进程中设置变量。这在Linux中可行吗?我该怎么做?
我目前的计划是让SIGHUP处理程序读取“故障配置”文件,然后根据需要设置全局变量。但是如果Linux中已经存在可以做到这一点的东西,那就更简单了。
答案 0 :(得分:5)
您可以使用mmap
通过文件处理程序(shm_open)共享页面,然后在两个应用程序之间进行通信。
答案 1 :(得分:-1)
您无法更改其他进程的环境,如果您可以在任何UNIX系统中执行此操作,我会感到惊讶。
在另一个问题中描述了一些黑客:Is there a way to change another process's environment variables?但它们只是丑陋的黑客:)