system() 不适用于修改命令行提示符
system() doesn't work for modifying the command line prompt
我在Ubuntu中使用C ,并要修改命令提示符。如果我在命令行中输入PS1 = ABC,则提示将变为ABC。
但是,如果我执行调用系统的程序(" ps1 = abc"(,则提示不会更改。
另一方面,System((似乎可以通过不同的命令和命令行obeys效法。
PS1
是环境变量。每个过程都有自己的环境变量集。
启动一个新过程时,它将继承其父母环境的复制。对过程环境的任何更改都不会影响其父过程的环境。
system
功能启动了新的子过程。这意味着system("PS1=ABC")
启动了一个设置自己的PS1
变量然后退出的子进程。
要在自己的过程中修改环境变量,请使用putenv
(Linux和其他UNIX-Likes(或SetEnvironmentVariable
(Windows(。请注意,这仍然不会影响您的父进程(可能启动程序的外壳(,因此设置PS1
仍然不会有任何影响Div>
system(command)
启动子进程。每当完成时,整个环境就消失了。
如果要将环境变量传递到子过程,请查找fork()
和exec()
。
或,如果您使用Windows,则CreateProcess
。
相关文章:
- 从命令行c++发送文本文件名
- 为cl.exe(Visual Studio代码)指定命令行C++版本
- 如何在OMNET++中指定与命令行参数组合的输出文件名
- 数组长度,为什么从命令行获取时不能使用它?
- 如何处理linux终端中带有负号(-)的C++中的命令行参数
- VS Code "command":"make"与终端窗口中的命令行"make"不同
- 未定义的引用 .. 使用 OpenCV 编译 C++ 代码时,从命令行
- 通过 Openssl 命令行加密,通过 c++ 解密
- CMake "--target install"无需"--build"命令行
- 更改命令行 qt5 源代码构建配置的正确/快速方法
- 使用 C++ 将命令行参数拆分为参数/向量
- 用于解析 win64 堆栈跟踪的命令行客户端(可以访问符号服务器)
- LLVM | codegen 用于带有命令行选项的程序输入功能
- 如何在OMNET++中添加专门的命令行参数?
- Makefile g++ 使用命令行中的 -D 变量进行编译,默认值
- 在命令行中创建快捷命令
- 在命令行上将输入显示到数组中时如何删除 ./a.out?
- system() 不适用于修改命令行提示符
- 修改GetCommandLine()的命令行参数
- 修改命令行参数