PS1
- это переменная окружения. Каждый процесс имеет свой набор переменных среды.
Когда вы запускаете новый процесс, он наследует копию среды своего родителя. Любые изменения в среде процесса не влияют на среду его родительского процесса.
Функция system
запускает новый дочерний процесс. Это означает, что system("PS1=ABC")
запускает дочерний процесс, который устанавливает собственную переменную PS1
и затем завершает работу.
Чтобы изменить переменную среды в своем собственном процессе, используйте putenv
(Linux и другие Unix-подобные) или SetEnvironmentVariable
(Windows). Обратите внимание, что это по-прежнему не повлияет на ваш родительский процесс (вероятно, оболочку, из которой была запущена ваша программа), поэтому установка PS1
все равно не окажет никакого влияния, если вы впоследствии не запустите другую оболочку в качестве дочерней.