当前位置:首页 > 技术手札 > 正文内容

NXOPEN二次开发之获取环境变量值混乱

秋风渡红尘5年前 (2021-08-29)技术手札1928

        看标题就知道顾名思义了,这是getenv()的一个坑。

char* appdata = getenv("APPDATA");
        很简单的一句,乍一看没问题是不是?一开始我也觉得是,首次运行起来也好好的。

        但是,因为是开发的插件,主程序我一般是不关闭的,那么再第二次运行插件的时候,好戏上场了:正常来说appdata应该是

C:\Users\用户名\AppData\Roaming

        拿到appdata后,就用来做别的事,当然没对appdata进行改动,仅仅是赋值给其它变量,偏偏第二次运行的时候,appdata就变了,变成了我新建的目录和文件路径,例如

C:\Users\用户名\AppData\Roaming\Plugin\XXXX.TXT

        很奇怪是不是?然后我直接打印getenv(“APPDATA”),发现它也变成了文件路径!

        经过连续两天检查代码,我直觉告诉我代码逻辑没问题,是getenv()在作妖!

        然后找了替代,那就是_dupenv_s

char *appdata;
size_t len;
errno_t err = _dupenv_s( &appdata, &len, "APPDATA" );
        然后世界又变得美好了!

扫描二维码推送至手机访问。

版权声明:本文由咿呀贝发布,如需转载请注明出处。

本文链接:https://www.yiyabei.cn/?id=67

标签: UGNXNXOPEN
分享给朋友:

相关文章

UG NX8.0/8.5 OPEN配置visual studio2017环境

UG NX8.0/8.5 OPEN配置visual studio2017环境

摘录的博客文档,方便自己使用,原文为NX10.0,经自己测试,同样适用于NX8.0/8.5。 将NX10.0安装文件下的vs_file中的VC、VC#、VB文件夹复制到VS2017的安装文件夹下...

carlibre抓取网页内容生成电子书

carlibre抓取网页内容生成电子书

#!/usr/bin/python # encoding: utf-8 from calibre.web.feeds.recipes import BasicNewsRecipe class Pro_Git_Chinese(Basic...

UBUNTU 安装owncloud

UBUNTU 安装owncloud

wget -nv https://download.owncloud.org/download/repositories/production/Ubuntu_16.04/Release.key -O Release.key apt-key...

Ubuntu 16.04下忘记MySQL密码如何重置

Ubuntu 16.04下忘记MySQL密码如何重置

I. 在终端输入 sudo gedit /etc/mysql/mysql.conf.d/mysqld.cnf II. 在[mysqld]下方的skip-external-locking下面添加...

caddy的文件目录

caddy的文件目录

通过查看 /usr/local/caddy vim /usr/local/caddy/Caddyfile 得知文件目录是在 /etc/v2ray/pages...

BBR+BBR魔改+锐速一键脚本 for Centos/Debian/Ubuntu

BBR+BBR魔改+锐速一键脚本 for Centos/Debian/Ubuntu

此文为引用文。 支持系统:Centos 6+/Debian 8+/Ubuntu 14+,BBR魔改版不支持Debian 8 wget -N --no-check-certificate...