assembly - 如何检查文件路径是否存在
问题描述
我是大会的新手;如何从 IBM 大型机汇编代码中检查某个路径 (UNIX) 路径是否存在。例如我想检查路径'/user/lpd/file'路径是否存在。
IBM页面上有一个示例
MVC BUFFERA(19),=CL19'labrec/qual/current'
MVC BUFLENA,=F'19'
SPACE ,
CALL BPX1STA, Get file status +
(BUFLENA, Input: Pathname length +
BUFFERA, Input: Pathname +
STATL, Input: Length of buffer needed +
STAT, Buffer, BPXYSTAT +
RETVAL, Return value: 0 or -1 +
RETCODE, Return code +
RSNCODE), Reason code +
VL,MF=(E,PLIST) ----------------------------------
但是这个还是需要手动查找参数a的长度
解决方案
当我第一次开始学习 HL/ASM 时,我发现结合使用操作原理和 C 编译器列表很方便。
如果你在 Unix 系统服务端,你可以写一段代码,例如
富.c:
#include <stdlib.h>
int foo(const char* str) {
return strlen(str);
}
然后将该代码编译为:
c89 -c -Wc,list(./) foo.c
然后看看编译器是如何生成代码的。你也可以试试 -O2 看看优化器是怎么做的。注意不要让优化器“做太多”,例如不要让它看到实际的字符串,否则它只会在编译时计算长度
推荐阅读
- c# - Include() 不会在查询中加载关系。它们仅在 collection.load() 或其他表的不相关查询中填写
- javascript - Bootstrap 滑块 - 使用 +/- 按钮进行控制
- angular - 服务值更改时更新组件值Angular 8
- python - 将 lxml etree 文本设置为带有标签的字符串
- python - 如何在 Python 上运行池化 OLS 回归?
- node.js - 无法通过 Node.js 使用 executeMany() 将其插入 Oracle DB
- asp.net - 验证 Auth cookie 是由当前 Session 生成的
- javascript - 量角器:如何单击模态对话框中的按钮(角度元素)
- typescript - 错误“无法设置未定义的属性'last_element'”,尝试在数组foreach中分配值时,在angular8中
- python-3.x - 计算具有统计意义的迭代次数