c – 为什么我的包装器setenv()不能正常工作?
发布时间:2020-12-16 10:15:25 所属栏目:百科 来源:网络整理
导读:我有下面的方法,它正确地将ret值设置为0(表示setenv成功),但是当我检查这个环境变量是否实际设置时,它不存在.为什么会这样? void Class::mysetenv(char* a,char* b) { if(a==0 || b==0) return; int ret = setenv(strdup(a),strdup(b),1); printf("ret: %d
我有下面的方法,它正确地将ret值设置为0(表示setenv成功),但是当我检查这个环境变量是否实际设置时,它不存在.为什么会这样?
void Class::mysetenv(char* a,char* b) { if(a==0 || b==0) return; int ret = setenv(strdup(a),strdup(b),1); printf("ret: %d %s %sn",ret,a,b); } 解决方法
你的功能泄漏了. setenv的联机帮助页说:
因此,在将它们传递给它之前,您不必自己复制它们. 你是否在shell中执行这样的程序? ./a.out FOO 42 那么,将为如此执行的进程(a.out)设置环境变量,并将其继承到由它启动的进程.但它不会“冒泡”到执行a.out的shell中.这也是为什么诸如set或export之类的命令是shell内置而不是真正的程序的原因.在bash中结帐“帮助导出”. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- c# – AWS – 如何在AWSSDK for .NET中更改cloudwatchclien
- c# – 默认情况下在Windows Phone中加载xaml页面时首先调用
- 13.3.1 实现 XML 辅助函数
- virtualbox vb 虚拟机网卡工作模式
- FMS 常常会用到 3个Call 和3个Send
- objective-c – Xcode 6.4 Swift单元测试无法编译:“未找到
- xcode – 无法执行操作,因为“PROJECTNAME”有一个或多个树
- objective-c – CBPeripheral name有时为空
- quick-cocos2d-x 加密全过程解析
- cocos2dx背景透明处理