作者热门文章
- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我试图在 c 中读取导出的变量,但我不能,有两种情况。
A)
1) 我有一个像这样的 sh 文件:
#!/bin/bash
timeout 3s ./program
export OUT=$?
2) 然后我运行:。文件.sh
3) 当我用 c 读取 var 时:
getenv("OUT")
是的,我读过了。
B)
在 c:system("/bin/bash -c '.PathOfFile/file.sh'");
getenv("OUT")
。我无法访问 OUT
我需要在 c 中运行 sh 文件并在 c 中读取 var
谢谢
最佳答案
POSIX 中的环境由新进程(由 fork 创建)即子进程继承。但是,当您更改子进程中的环境并且该进程结束时,除了子进程的退出代码之外,没有任何东西可以保存环境或导致父进程获取任何信息。如果你想从子进程中保存一些东西,你必须使用某种形式的 IPC 来实现,从将它保存在一个文件中到使用套接字或内存缓存。
关于linux - 如何在 c 中运行 sh 文件并导出变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24878928/
我是一名优秀的程序员,十分优秀!