Openvms c++ -如何向环境传递值
Openvms C++ - how to pass values to the environment
我正在尝试在VMS上传递c++程序的值。
$DESCRIPTOR( lname, (char*) "A" );
$DESCRIPTOR( lvalue, (char *) "Hello World" );
lib$set_logical( &lname, &lvalue );
lib$set_symbol (&lname,&lvalue);
它应该工作吗?如果不是,我如何纠正它?
如何检查返回值?
如果检查成功,如何检查环境?
如果它能工作,它可靠吗?(不取决于权限等)
No。看看$DESCRIPTOR是如何定义的,在description .h中:#define $DESCRIPTOR(name,string) struct dsc$descriptor_s name = { sizeof(
string)-1, DSC$K_DTYPE_T, DSC$K_CLASS_S, string }
在您的示例中,lname和lvalue的第一个元素都包含3,从(char*)的大小派生,然而期望的是字符串的长度,从字符数组的大小派生。
lib$set_symbol和lib$set_logical的C语言工作示例,包括如何正确执行描述符和标准化错误检查。您不需要特权来执行这些功能,所以,是的,它是"可靠的"。
要查看程序的结果,您可以输入(对于我的示例):$ SHOW SYMBOL/GLOBAL LIB_SET_SYMBOL_TEST
:
$ SHOW LOGICAL LIB_SET_LOGICAL_TEST
相关文章:
- 枚举环境变量的惯用C++14/C++17方法
- 在 Windows 上,是否可以让 dll 在不使用 PATH 环境变量的情况下在另一个文件夹中查找依赖项?
- 创建一个包含 c++ 默认值的环境文件
- 定义C++新的环境变量并在 bat 文件中使用它
- 用于在并发环境中访问 MMIO 的软件模式
- docker 构建失败:无法设置环境变量
- 如何在不传递命令行参数的情况下在 c++ 中设置环境变量
- C++环境变量
- 在编译时为运行时设置环境变量
- 在 3ds Max 中更新进度条后,环境和效果 UI 不刷新
- 如何使用可视化代码和平台IO将环境变量注入CPP文件?
- 访问 PlatformIO 中的外部环境变量
- 在 Azure DevOps 构建管道中使用英特尔C++编译器为 Linux 环境构建C++代码
- 如何注册枚举类型到QJSEngine,以便在脚本环境中使用?
- WSL 看不到环境变量
- 启动 dll 时 C# 环境堆栈溢出
- "C.UTF-8" C++ Windows 上的语言环境?
- 如何正确取消析构函数中的 Boost deadline_timer(在多线程环境中)?
- 有没有办法为macOS上的C++程序指定自定义语言环境目录
- 如何在提升构建中设置环境变量以进行提升单元测试框架?