gpt4 book ai didi

c - 如何在 C 中获取本地 shell 变量?

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

我目前正在制作我自己的内置历史记录副本。我意识到我需要 HISTSIZE、HISTFILE 和 HISTFILESIZE 变量来实现命令选项,但我不知道如何获取它们。是否有类似 getenv 的函数或类似 environ 但带有本地 shell 变量的变量?

提前致谢!

最佳答案

内置命令由 shell 直接执行有两个可能的原因:

  • 避免产生新的进程(性能原因)
  • 这是访问内部 shell 变量(您的用例)的唯一方法

shell 只能通过两种方式提供对其内部变量的访问:

  • 要么将它们复制到环境中,因为根据定义环境是传递给子进程的变量列表
  • 要么提供进程间通信机制(命名管道、私有(private)套接字等)以允许其子进程请求它们

据我所知,也没有通用的 shell 实现,但是可以将所需的 shell 变量导出到环境中:

export HIST
export HISTSIZE
export HISTFILESIZE

应该足以让他们稍后通过 getenv

关于c - 如何在 C 中获取本地 shell 变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40906588/

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