c - 如何在 $PATH 中添加和删除名称?
问题描述
编辑
可惜getenv
还是setenv
不要修改路径。当我使用以下代码时
int main() {
char *oldenv = strdup(getenv("PATH")); // Make a copy of your PATH
setenv("PATH", "$PATH:~/opt/bin", 1); // Overwrite it
system("echo $PATH"); // Outputs "$PATH:~/opt/bin"
setenv("PATH", oldenv, 1); // Restore old PATH
free(oldenv); // Don't forget to free!
system("echo $PATH"); // Outputs your actual PATH
}
代码打印出硬编码$PATH:~/opt/bin
而不是通常的$PATH
命令。
编辑结束
我发现这个链接提供了如何在 c 编程语言中添加文件名,$PATH
而不是在 c 编程语言中。当我运行代码时,它只是打印出原始路径而不是修改后的路径。有趣的是,当我放 时system("echo $PATH:~/opt/bin")
,它成功显示了修改后的路径。另外,我不确定如何~/opt/bin
从修改后的路径中删除相同的文件名 ( )。
我的代码在这里:
int main (void) {
system("echo $PATH");
system("export PATH=$PATH:~/opt/bin");
system("echo $PATH"); //prints out the original $PATH
}
解决方案
推荐阅读
- sql - 错误:列“owner_name”指定了多次
- java - Java 8 上的 TLS 版本始终默认为 TLSv1
- kubernetes - Prometheus Operator + 新 Kubernetes Minikube = DeadMansSwitch + KubeControllerManagerDown + KubeSchedulerDown + TargetDown
- sql - 与 sum 一起的情况
- header - 改变
在特定的 prestashop 中标记 - sql - MS SQL 根据一个列表执行多个更新
- r - 如何从列表转换为省略号?
- excel - 由于脚本安全性,Excel VBA GetObject 返回 Outlook.Application 的类型不匹配
- ios - 即使没有条件请求,设置缓存控制是否会自动启用缓存?
- spring-cloud-stream - 使用kafka流作为输入通道和rabbitmq作为输出的spring cloud stream multi binder的任何示例?