gpt4 book ai didi

linux - 如何在 c 中运行 sh 文件并导出变量

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:19:18 25 4
gpt4 key购买 nike

我试图在 c 中读取导出的变量,但我不能,有两种情况。

A)

1) 我有一个像这样的 sh 文件:

#!/bin/bash
timeout 3s ./program
export OUT=$?

2) 然后我运行:。文件.sh

3) 当我用 c 读取 var 时:

getenv("OUT") 是的,我读过了。

B)

  1. 在 c:system("/bin/bash -c '.PathOfFile/file.sh'");

  2. getenv("OUT") 。我无法访问 OUT

我需要在 c 中运行 sh 文件并在 c 中读取 var

谢谢

最佳答案

POSIX 中的环境由新进程(由 fork 创建)即子进程继承。但是,当您更改子进程中的环境并且该进程结束时,除了子进程的退出代码之外,没有任何东西可以保存环境或导致父进程获取任何信息。如果你想从子进程中保存一些东西,你必须使用某种形式的 IPC 来实现,从将它保存在一个文件中到使用套接字或内存缓存。

关于linux - 如何在 c 中运行 sh 文件并导出变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24878928/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com