调用操作系统命令
文章平均质量分 70
yaoxin521123
创造价值,分享学习,一起成长,相伴前行。
展开
-
第二十三章 $ZF Callout 快速参考
和一个文件名或文件路径。标准输入应该指向一个现有的文件。如果标准输出和标准错误文件不存在,则会创建它们,如果它们已经存在,则会被截断。函数用于运行外部程序或系统命令,或者启动操作系统外壳。这是唯一一个可以在没有标注库的情况下使用的$ZF函数。要使标准错误和标准输出转到同一个文件,请为两个关键字指定同一个文件。这些函数中的大多数还带有附加参数,如每个函数的详细条目中所述。函数提供了一组由一个或两个数字参数标识的从属函数(例如,从属函数运行外部程序或系统命令,运算符创建或截断文件,或使用。原创 2024-01-14 09:58:44 · 934 阅读 · 0 评论 -
第二十六章 $ZF Callout 快速参考 - $ZF(-6):按用户索引调用
进程索引表中删除条目。如果未指定索引号,则删除所有索引条目。库的访问,甚至可以由不知道共享库文件位置的应用程序使用。它们提供卸载库以及创建或维护索引的服务。在标注系统索引表中创建一个条目。删除标注系统索引表中的条目。卸载由索引号指定的标注库。接口通过用户定义的索引表提供对。进程索引表中创建一个条目。库中查找并执行函数。原创 2024-01-17 09:01:09 · 443 阅读 · 0 评论 -
第二十五章 $ZF Callout 快速参考 - $ZF(-5) Call by System ID
共享库并在运行时调用库函数。调用应用程序必须知道库路径和库函数名称。库和函数由系统定义的。加载按名称指定的标注库,并返回它的。号以及加载或卸载库的服务。函数允许应用程序加载。:按用户索引调用”)原创 2024-01-16 08:34:00 · 381 阅读 · 0 评论 -
第二十四章 $ZF Callout 快速参考 - $ZF()调用iriszf库
的自定义标注库中调用函数。一旦你创建并安装了这个库,它的功能就可以立即被$ZF()使用,而不需要加载这个库或者指定一个库标识符。的自定义标注库中调用函数(请参阅“使用$ZF()访问iriszf标注库”)。共享库,并在运行时调用库函数。调用应用程序必须知道库路径和库函数名。的调用指定了与前一个调用不同的库,则前一个库将被卸载并替换。之前,必须通过调用以库和函数名作为参数的实用函数(通过系统定义的ID号指定库和函数。加载标注库并执行库函数。指定库名和函数名作为参数。时不带负数参数(例如,原创 2024-01-15 11:21:23 · 435 阅读 · 0 评论 -
第二十二章 调用Callout Library函数 - 使用过程索引进行测试
如前所述,进程索引表在系统索引表之前被搜索,因此可以在进程内使用它来覆盖系统范围的定义。以下示例创建一个进程索引,用于测试上一节中使用的库之一的新版本。原创 2024-01-13 10:43:59 · 487 阅读 · 0 评论 -
第二十一章 调用Callout Library函数 - 使用$ZF(-6)接口封装库函数
类,这些类允许最终用户执行完全相同的任务,而无需了解有关标注库的内容或位置的任何信息。中的函数来处理一些实验数据并生成可用于绘制图形的二维数组。本节中的示例使用以下。类允许最终用户调用库函数,而无需了解有关实际。接口编写一个示例非常简单,其工作方式与。访问库”在本章中),但这并不能证明使用。方法完全相同的任务(请参阅前面的“使用。接口的示例类似(请参阅前面的“使用。以下示例演示了最终用户如何使用。原创 2024-01-12 09:06:39 · 446 阅读 · 0 评论 -
第二十章 调用Callout Library函数 - 使用 $ZF(-6) 按用户索引访问库
此示例将100设置为系统索引表中的库ID。如果该编号已存在定义,则会将其删除并替换。LibID是开发者选择的索引号。它可以是任何大于零的整数,保留的系统值1024到2047除外。如果已加载索引号为100的库,则应在替换条目之前卸载该库。对$ZF(-4,5)的调用将索引号100与库文件相关联。一旦在系统索引表中定义了库ID,它就可供IRIS当前实例中的所有进程Global使用。原创 2024-01-11 08:08:31 · 808 阅读 · 0 评论 -
第十九章 调用Callout Library函数 - 将 $ZF(-5) 与多个库和许多函数调用一起使用
对 的调用将标注库 和 加载到虚拟内存中,并为其返回系统定义的库 。对 的调用使用库 和函数名称来获取库函数的 。返回的函数 实际上是 表序列号(请参阅上一章中的“创建 表”)。第一个循环使用 调用每个库中的函数:默认情况下,循环获取 个项目。由于两个库都已加载并保留在内存中,因此在两个不同库之间切换没有处理开销。以下部分介绍 接口,它将库加载到与 接口相同的虚拟内存空间中。原创 2024-01-10 09:00:06 · 533 阅读 · 0 评论 -
第十八章 调用Callout Library函数 - 使用 $ZF(-5) 通过系统 ID 访问库
函数使用系统定义的库和函数标识符来调用库函数。在进行许多库函数调用的应用程序中,这可以显着减少处理开销。可以同时打开多个库。每个库只需加载一次,每个库或函数标识符只需生成一次。代码加载两个不同的库,并在长循环中调用这两个库中的函数。当多次调用多个库中的函数时,这可以消除大量的处理开销。一旦定义了标识符,库将保持加载状态,直到被。卸载,并且可以使用标识符而无需进一步调用。库并获取库和函数标识符。是共享库文件的全名和路径,原创 2024-01-08 08:00:13 · 373 阅读 · 0 评论 -
第十七章 调用Callout Library函数 - 使用 $ZF(-3) 进行简单的库函数调用
可以加载或卸载库而无需调用函数。要加载新库,只需指定库名称。要卸载当前库而不加载新库,请仅指定空字符串。库并执行该库中的指定函数。如果只使用一个库,或者没有进行足够的调用来担心加载库的开销,则。调用指定相同的库,该库就会保持加载状态。加载库后,可以在后续调用中将库名称指定为空字符串。尚未加载指定的库,则会加载指定的库。一次只能加载一个库。调用指定不同的库时,旧库将被卸载,新库将替换它。,就好像它正在加载和卸载其自己的库的私有副本一样。本章的以下部分描述了可以一次加载多个库的。原创 2024-01-07 08:16:25 · 397 阅读 · 0 评论 -
第十六章 调用Callout Library函数
Callout` 库并从该库调用函数。库在首次使用时加载一次,并且永远不会卸载。它完全独立于本章前面描述的其他。目录中可用时,可以通过仅指定函数名称和参数的。函数,并且实例中的所有进程都可以使用。库提供相同的功能,无需重新链接内核。的早期版本允许将代码静态链接到。不再支持静态链接,但。函数在运行时加载它并调用其函数。无需事先加载库即可调用。,具体取决于平台)来定义的。调用来调用其函数(例如,接口的挂钩,允许各种。库、将其移动到实例的。原创 2024-01-06 08:33:35 · 933 阅读 · 0 评论 -
第十五章 创建Callout Library - 处理 UNIX 信号处理错误
系统调用可能会失败。但是,根据信号,可能会采取其他操作。及相关操作系统下运行时,如果进程收到信号,某些系统调用可能会失败,最常见的是打开、读取、写入、关闭、时,会自动保存先前的处理程序。用户程序不应改变任何其他信号的处理。或进程收到信号时失败的任何调用。如果函数使用任何这些系统调用,代码必须能够区分真正的错误、应在使用 sigrtchk() 之前调用一次。注意:记住:错误处理代码绝不能改变信号的处理,除非调用。— 建立新的 `SIGALRM 处理程序。中设置新的警报处理程序。和应重新启动的调用。原创 2024-01-05 08:04:34 · 719 阅读 · 0 评论 -
第十四章 创建Callout Library - 故障排除和错误处理
如果优先级太低,其他具有更高优先级的进程可能会争夺资源,从而有效地阻止进程运行,从而释放自旋锁。代码应该返回一个不透明句柄,稍后当它收到一个不透明句柄时,它应该在使用它之前验证它是否有效。分配内存,因为这些资源将在进程终止时关闭或释放。如果创建第二个线程,则无法保证第二个线程会在。可以非常简单地屏蔽中断以实现自己的互锁,但应该非常小心,不要在任何时间段内都屏蔽中断。调用几乎任何例程,但它最适合用于数学函数。进程退出之前正常退出,因此不要创建第二个线程。无法很好处理的外部设备的接口,或者用于。原创 2024-01-04 08:05:18 · 417 阅读 · 0 评论 -
第十章 创建Callout Library - 使用 B 链接类型传递短计数字符串
注意:逗号在包含多个值的输出参数字符串中用作分隔符。由于逗号也可以是计数字符串数组的一部分,因此请在参数列表的末尾声明这些数组,并在每次调用时使用一个数组。这些结构包含一个字符元素数组(分别为。参数的最大总长度取决于每个字符的字节数(请参阅“配置。以下三个函数均生成一个随机整数,将其转换为最多包含。,对应于三个数组结构。返回的数组的最大大小为。)和一个指定数组中元素数量的短整数(最大值。头文件定义了计数字符串结构。位数字的数字字符串,并使用。B 链接指定指针类型。原创 2023-12-31 17:26:32 · 829 阅读 · 0 评论 -
第十三章 创建Callout Library - 兼容的语言和编译器
平台是主要例外,这些平台存在多种调用约定。有关这些平台上的调用约定的讨论,请参阅 (https://en.wikipedia.org/wiki/X86_calling_conventions在。编译器理解的调用约定的任何其他编译语言编写。大多数平台都有标准化的应用程序二进制接口 (ABI),使大多数编译器兼容。编译器允许为外部例程声明不同的调用约定。库可以包含自定义内部函数,这些函数将在加载(包装例程,可以调用用另一种语言编写的例程。其次,编译器生成的代码必须不依赖于与。不兼容的任何运行时库功能。原创 2024-01-03 08:02:10 · 845 阅读 · 0 评论 -
第十二章 创建Callout Library - 为旧版短字符串配置 $ZF 堆
链接类型传递短计数字符串”)。标准 IRIS 字符串(请参阅“通过。短字符串输入和输出参数分配的虚拟内存空间。链接类型传递标准计数字符串”)使用自己的堆栈。注意:本节仅适用于旧版短字符串(请参阅“使用。原创 2024-01-02 08:23:18 · 401 阅读 · 0 评论 -
第十一章 创建Callout Library - 使用 J 链接类型传递标准计数字符串
以从内存中删除输入参数。即使参数不用于输出,也应该始终这样做。如果不这样做可能会导致内存泄漏。函数调用库)中的函数进行操作。有关详细信息,请参阅使用。以下三个函数均生成一个随机整数,将其转换为最多包含。此结构包含一个字符元素数组(输入参数 在前面的示例中,始终调用。头文件定义了计数字符串结构。)和一个指定数组中元素数量的。位数字的数字字符串,并使用。标注接口是完全独立的产品)。以下函数用于创建和销毁。原创 2024-01-01 08:40:31 · 377 阅读 · 0 评论 -
第九章 创建Callout Library - 使用数字链接
允许输入参数为字符串。当传递一个字符串时,将从字符串中解析前导数字以得出数值。如果没有前导数字,则将收到值。为了避免转换(这可能会导致精度略有损失),必须在调用该函数的。) 字符的字符串时,才应使用此链接类型。创建输入值,并且必须将相应的输入链接指定为小写的。传递的字符串,即使该字符串实际上更长。以下三个函数均生成一个随机整数,将其转换为最多包含。之间传递,而不会损失任何精度(除非外部函数使用。指定时,返回的数字将转换为内部基数。位数字的数字字符串,并使用。位浮点输出参数的参数列表。原创 2023-12-30 09:56:21 · 419 阅读 · 0 评论 -
第八章 创建Callout Library - ZFentry 链接选项
每个ZFENTRY语句都需要一个描述如何传递参数的字符串。例如,“iP”指定两个参数:一个整数和一个指向整数的指针。第二个字母大写以指定第二个参数可用于输入和输出。代码最多可以有32个实际参数和形式参数。如果指定大写链接类型(允许用于除i之外的所有链接类型),则该参数可用于输入和输出。如果仅指定一个输出参数,则其最终值将用作函数的返回值。如果指定了多个输出参数,则所有输出参数都将以逗号分隔的字符串形式返回。输出参数不必用作输入参数。原创 2023-12-29 10:00:57 · 1019 阅读 · 0 评论 -
第七章 创建Callout Library - 创建 ZFEntry 表
结尾的宏代码块生成。在这两个宏之间,必须为要公开的每个函数调用一次。接口(在“调用标注库函数”中描述)都通过指定表中的序列号(从。指令,该指令是一个开关,可生成用于定位库函数的内部。调用此函数来初始化该库,以便后续查找库函数名称。是指定如何传递参数的字符串,表中条目的位置可能很重要。开始)来调用库函数。是表中第三个条目的序列号。调用中指定函数的字符串,原创 2023-12-28 07:43:37 · 355 阅读 · 0 评论 -
第六章 创建Callout Library
从代码访问Callout库有几种不同的方法,但一般原则是指定库名、函数名和任何必需的参数(请参阅“调用Callout库函数”)。例如,下面的代码调用一个简单的Callout库函数:从Callout库调用AddInt函数下面的代码在终端上执行。它加载一个名为的Callout库,并调用一个名为AddInt的库函数,该函数将两个整数参数相加并返回总和。库并不比调用它的代码复杂多少。它包含所有Callout包含头文件时提供的标准代码。具有正确指定参数的一个或多个函数。ZFEntry表的宏代码,它生成。原创 2023-12-27 09:05:49 · 926 阅读 · 0 评论 -
第五章 使用$ZF(-100)运行程序或系统命令 - 增加权限
时创建,但是管理员可能不希望所有用户都可以使用它。在某些情况下,可能需要为用户提供一个角色,使。如果安全设置高于最小值,则可能会禁用此特权。下面的过程描述了如何在。可用,但不授予任何其他特权。下面的过程创建了一个只授予。按钮弹出资源滚动列表,从列表中选择。角色现在位于角色定义列表中。时,表单上将出现一个。原创 2023-12-26 09:05:16 · 375 阅读 · 0 评论 -
第四章 使用$ZF(-100)运行程序或系统命令 - 记录命令和重定向输出
和一个文件名或文件路径。标准输入应该指向一个现有的文件。如果标准输出和标准错误文件不存在,则创建它们;使用=操作符创建或截断文件,或使用+=操作符追加到现有文件。要使标准错误和标准输出转到同一文件,请为这两个关键字指定相同的文件。在下一个示例中,通过将文件重定向到标准输入,我们以不同的方式显示两行。在大多数情况下,命令及其参数记录在一行,返回值记录在下一行。在任何一种情况下,参数都将在程序接收到它们时准确地记录下来。,并尝试显示一个不存在的文件。命令的标准输出重定向到文件。在下面的示例中,第一行将。原创 2023-12-25 07:57:34 · 831 阅读 · 0 评论 -
第三章 使用$ZF(-100)运行程序或系统命令
ZF(-100)提供类似于命令行接口的功能,允许调用可执行程序或主机操作系统的命令。第一个参数必须是字面量-100。Keywords- 包含指定各种选项的关键字的字符串。例如,字符串指定程序应该异步运行,并将命令行写入日志文件。Command- 指定要调用的程序或系统命令的字符串。如果未指定可执行文件的完整路径,则操作系统将应用标准搜索路径规则。参数 - 命令参数被指定为一系列以逗号分隔的表达式(如下面的示例所示)。$ZF(-100)函数返回由操作系统和被调用的程序确定的退出状态码。原创 2023-12-24 09:17:13 · 448 阅读 · 0 评论 -
第一章 $ZF Callout接口
通过指定库文件路径和函数名加载库并调用函数。接口可用于多种用途,从进行简单的操作系统命令行调用到创建提供对数百个函数访问的函数库。创建可用于一次有效地维护和访问多个库的接口。可以同时加载和使用多个库,每个库所需的处理开销都比。编写,但也可以使用具有兼容调用约定的语言(参见“兼容语言和编译器”)。当此库可用时,无需事先加载库或指定库名称即可访问其函数。库创建最有效的接口。通过全局定义的索引表访问库。函数在运行时加载它并调用它的函数。实例中的所有进程,并且多个库可以同时在内存中。库是用户编写的共享库(原创 2023-12-22 08:16:12 · 875 阅读 · 0 评论 -
第二章 $ZF Callout函数概述
IRIS $ZF系统功能是一套相关功能的容器。$ZF套件中的大多数函数都由函数调用的第一个参数标识,该参数将是一个负数,-100或-3到-6。例如,调用操作系统命令的函数具有的形式,其中是包含要执行的命令的字符串。当讨论这个函数时,它将被称为$ZF(-100)。以同样的方式,其他函数将被称为$ZF(-3)到$ZF(-6),只使用实际函数调用的第一个参数。也可以在不带负数参数的情况下调用$ZF()函数,在这种情况下,它调用名为iriszf的特殊Callout库中的函数。是动态链接的文件(Windows为。原创 2023-12-23 08:26:54 · 842 阅读 · 0 评论