英语法语西班牙语

Ad


OnWorks 网站图标

icmake - 云端在线

通过 Ubuntu Online、Fedora Online、Windows 在线模拟器或 MAC OS 在线模拟器在 OnWorks 免费托管服务提供商中运行 icmake

这是 icmake 命令,可以使用我们的多个免费在线工作站之一在 OnWorks 免费托管服务提供商中运行,例如 Ubuntu Online、Fedora Online、Windows 在线模拟器或 MAC OS 在线模拟器

程序:

您的姓名


icmake - 一个程序维护(使) 实用程序使用 C- 类似语法

概要


制作 [选项] 来源[.im] [目标[.bim]] [-- [参数]]

爱奇艺 文件

商品描述


爱奇艺(1) 可以作为替代 使(1). 在其标准操作模式下,它
调用以下程序:

o icm-pp 预处理icmake文件

o icm-comp 字节码编译 制作 s

o icm执行 执行字节码文件

爱奇艺 允许程序员使用一种编程语言(非常类似于众所周知的
C-编程语言)来定义(复杂)程序中涉及的动作
维护。 为了这, 制作 提供各种特殊运算符以及一套支持
已被证明对程序维护有用的功能。

该程序 爱奇艺(1) 可用于反汇编编译后的字节码 (.bim) 文件。 爱奇艺
主要用于插图、教育和调试。

一旦头文件被修改,传统的 make 实用程序会重新编译源代码。 在里面
的上下文 C + +中 程序开发这通常是一个坏主意,因为添加一个新成员到
class 通常不需要您重新编译类的源代码。 处理类
依赖 ICMBULD(1) 可以检查 课程设置 可用于定义依赖项的文件
班级之间。 默认情况下,不解释类依赖性。 参考 配置文件(7)
手册页了解更多详情。

配置


爱奇艺 使用以下文件和选项:

o 资源: 制作 脚本源文件(默认扩展名: .IM).

o DEST: 二进制 制作 脚本文件(默认: ‘源’.bim, 称为“.bim 文件”
下文)。

o --: 制作 参数分隔符分隔 制作 来自传递的参数的参数
到 .bim filenl() ARGS: 参数如下 -- 传递给 .bim 文件
原样,可从 名单 精液 参数定义为 制作
脚本的 函数的第二个参数(见下面的部分 USER 定义
职能)。 对于某些选项(见下文), -- 不需要分隔符。

爱奇艺 支持各种选项,如下所述。 这 -h 选项否决所有其他
选项, -a option 否决所有其他选项,除了 -h. 剩下的动作
选项(-b, -C, -e, -一世, -p-t) 只能指定一个:

o -a
显示信息 制作,被否决 -h;

o -b
已停产:改用选项 -e;

o -c
制作 源文件被编译,生成一个.bim文件;

o -e
执行 制作 .bim 文件,给出为 制作的第一个文件参数。 任何额外的
参数按原样传递给 .bim 文件,并且 -- 不应指定;

o -F
文件名和标志以及要执行的所有操作的概述
制作 显示在标准输出流上;

o -h
提供使用信息并结束 制作;

o -i
第一个参数是 制作 源文件,默认的二进制文件是
必要时建造。 任何其他参数都传递给 .bim 文件
原样,和 -- 不应指定;

o -p
制作 只对源文件进行预处理,写入预处理后的文件
制作的第二个文件参数(默认情况下 ‘源’.pim);

o -q
被忽略,将来会被删除 制作 版;

o -t
下面的论点 -t 是临时 .bim 文件的名称,已删除
after 制作的电话。 什么时候 . 被指定为临时 .bim 文件的名称
然后是默认的临时目录,然后是 制作的进程ID,后跟
.bim 用来。

在临时 .bim 文件的名称之后是 制作 源脚本
必须指定。 任何其他参数都按原样传递给 .bim 文件,并且
-- 不应指定; 设置源脚本文件的可执行标志后
(CHMOD +x 脚本),并为它提供这样的初始行:

#!/usr/bin/icmake -t。

制作 脚本可以直接调用:

脚本 arg1 arg2

在这种情况下 制作 脚本 '脚本' 在接收到
参数 脚本 参数1 参数2.

o -T
此选项必须与用于存储的目录的名称一起提供
临时文件。 例如,当编译一个 制作 脚本,输出 制作
预处理器是一个临时文件,在退出时被删除。 默认情况下 / tmp目录 用来,
除非 / tmp目录 不是可写目录,在这种情况下当前用户的 $ HOME
目录使用。 隐式临时文件名总是以进程 id 开头
电流 制作 的过程。

o -v
显示、 制作的版本号,并结束 制作,被否决 -h

爱奇艺:

文件: 二进制 制作 脚本文件。

预处理器 指令


以下预处理器指令可用:

评论:
标准 C 评论(全部介于 /**/) 以及注释到行尾(所有
行内容如下 //) 被忽略。

o Shell 启动:第一行 制作-script 可能以 #!小路,其中
定义绝对位置 制作 程序。 通过制作脚本
可执行文件,无需显式调用即可调用 制作.

例如,如果(可执行)icmakefile 'icm'(无扩展名)的第一行
包含

#!/usr/bin/icmake -i

然后 ICM 可以作为命令发出,从而执行

/usr/bin/icmake -i icm ...

或者,

#!/usr/bin/icmake -t /tmp/icm

可能会被使用,导致执行

#!/usr/bin/icmake -t /tmp/icm icm ...

在这种情况下,二进制文件在退出时被删除。

o 的#include “文档名称”
该文件 文件名 包含在指令的位置

o 的#include
该文件 文件名 包含在 的#include 指示; 文件名
在由指定的冒号分隔的目录中搜索 IM 环境
多变的。 第一次出现 文件名 在指定的目录中 IM
使用环境变量。

o #定义 识别码 [定义]
文本 识别码 将被替换 定义. 定义可能包含
对已定义标识符的引用,使用 ${标识符} 格式。 如果
${标识符} 尚未定义(尚未),文本 ${标识符} 字面上保留。
防止无限递归最多100 ${标识符} 允许更换。

如果一行的最后一个字符是 a,则定义在下一行继续
反斜杠 (\)。 (不包括在定义中)。 预处理器
连接双引号字符串,双引号字符串不能跨越多个
线。 定义中的多个空格(双引号字符串之外)是
收缩到一个空白空间。

定义如下 #define 的 标识符是可选的。 如果省略,则
宏已定义,因此它可以用于 #if(n)定义 指令(见下文),但它们
不会被任何文本替换 制作 代码语句。

o #ifdef 识别码
如果 识别码 宏被定义为下一个代码块(直到匹配 的#else
or #ENDIF 指令被读取)是字节编译的。 否则,代码块是
忽略了。

o #ifndef 识别码
如果 识别码 宏是 不能 定义下一个代码块(直到匹配
的#else or #ENDIF 检测到指令)是字节编译的。 否则,块
代码被忽略。

o 的#else
终止一个 #ifdef#ifndef 指令,反转接受决定
以下代码。 只有一个 的#else 指令可以与 #if(n)定义
指令。

o #ENDIF
终止从匹配开始的预处理器块 #ifdef, #ifndef or 的#else
指示。 这 #ENDIF 目录及其匹配 #if(n)定义 指令必须是
在同一个文件中指定。

o #undef 识别码
删除 识别码 来自定义的符号集。 这不影响
任何先前定义的符号的规范,其中 身份标识 定义
已经用过。 如果 识别码 未定义会发出警告。

数据 类型


爱奇艺 支持这些数据类型:

o ASCII码 字符 常数
ASCII 字符常量由一个字符组成,由单字符或双字符包围
引号。 单个字符(例如, '一种') 代表字符本身。 标准
转义序列(例如, '\n') 被支持并代表他们的标准转换
值(例如, '\n' 表示 ascii 值 10(十进制))。 非标逃生
序列(例如, '\X') 表示转义字符后面的 ascii 字符
(所以 '\X' 等于 'X')。 由三个八进制数字组成的转义序列表示
对应于八进制值模 256 的 ascii 字符(例如, '\123').
由 x 后跟两个十六进制数字组成的转义序列表示
对应于十六进制值的 ascii 字符(例如, '\xa4').

o INT
积分值,范围从 -0x8000 通过 0x7fff. INT 常数可能是
指定为十进制数(以数字 1 到 9 开头)、八进制数
(以 0 开头,后跟一位或多位八进制数字)十六进制数字
(以 0x 开头,后跟一个或多个十六进制数字)或作为 ASCII码
字符常量。

o 绳子
文本变量。 字符串常量由双引号分隔。 多串
常量可以连接,但单个字符串常量不能跨越多个
线。 仅由空格分隔的字符串常量(即空格、换行符、
注释) 被连接起来并代表一个单一的字符串常量。 表示一个
字符串常量中的行尾使用 \n 转义序列。

用双引号括起来的 ASCII 字符常量也可以用于
算术表达式,如果其中一个操作数是 INT. 单个字符
字符串常量 必须 是常数,不能是 绳子 变量。

同样,被单引号包围的 ASCII 字符常量可以用于
需要字符串操作数的情况。

o 名单
包含一系列可单独访问的数据结构 绳子 价值观。 什么时候
一个列表包含元素,它的第一个元素由索引 0 表示。

o 无效
与函数定义一起使用以指示该函数不返回
计算值。

变量可以在全局级别以及内部的任何本地级别定义
职能。 在函数内部定义时,标准 C 范围和可见性规则
申请。 例如,局部变量只能在它们自己或更深的嵌套中使用
块,它们的可见性在更深的嵌套块中通过定义相同的
那些嵌套更深的块中的命名变量。 变量是强类型的,并且
不能有类型 无效.

变量可以在定义时进行初始化。 初始化是表达式,即
可以使用预定义或用户定义的函数、常量值和变量值
在定义点可见。

预定义 常数


以下常量由 制作. 都是不变的 INT 值:

─────────────────────────────────
用于的符号值
─────────────────────────────────
O_ALL 8 名单
O_DIR 2 制作清单
O_FILE 1 制作清单
O_SUBDIR 4 制作清单
─────────────────────────────────
关 0 回声
ON 1 回声
─────────────────────────────────
P_CHECK 0 系统调用
P_NOCHECK 1 系统调用
─────────────────────────────────
S_IEXEC 32 统计
S_IFCHR 1 统计
S_IFDIR 2 统计
S_IFREG 4 统计
S_IREAD 8 统计
S_IWRITE 16 统计
─────────────────────────────────

以下常量取决于体系结构:

────────────────────────────────────────────────────── ──────────────
在平台上定义时为符号 1,否则为 0
────────────────────────────────────────────────────── ──────────────
unix Unix,通常带有 GNU 的 gcc 编译器
UNIX 也可能可用
linux x86 运行 Linux(通常使用 gcc)
LINUX 可能也可用
M_SYSV、M_UNIX x86 运行 SCO/Unix
_POSIX _SOURCE Unix 与 Posix 兼容编译器
__hpux HP-UX,带有本地 HP 编译器
────────────────────────────────────────────────────── ──────────────

操作员


整型 操作数:

所有类型 C 运算符可用(指针运算符除外,如 制作 不支持
指针)。 他们像他们一样运作 C- 编程语言对应物。

字符串类型 操作数:

针对 绳子 类型变量和/或常量可以使用以下运算符(ab
代表 绳子 变量或常数):

o a + b: 返回一个新的 绳子 包含连接的值 绳子 价值观 a
b。 注意 绳子 常量可以直接连接(不使用 +
运算符),例如,以下两行都定义了字符串 “你好 世界”:

“你好,世界”
“你好”+“世界”

o a += b: a 必须是一个 绳子 变量,其中 绳子 变量或值 b is
附加。

o 字符串比较:运算符 == != <= >= < > !=== 可能适用于 绳子
值或变量,如果比较成功则返回 1,否则返回 0。
比较区分大小写,并遵循定义的顺序或字符
,在 ASCII码 字符集。

o !a: 布尔值 ! (not) 运算符返回 1 如果 绳子 a 为空,否则为 0
回。

o a 年轻的 b, a 较新 b: 如果文件返回 1 a 比文件更新 b. 例如,
“源.cc” 较新 “来源.o”. 文件 ab 不必存在:如果两者都不存在
存在 0 返回; 如果 b 不存在,返回1; 如果 a 不存在 0 是
回来; 如果它们相同,则返回 0。 (这 存在() 预定义功能
(见下文,部分 预定义 职能) 可用于显式测试是否
文件已存在)。

o a 老年人 b: 如果文件变为 1 a 比文件旧 b. 例如, “libprog.a” 老年人
“来源.o”. 文件 ab 不必存在:如果两者都不存在,则 0 是
回来; 如果 a 不存在,返回1; 如果 b 不存在返回0; 如果
他们同样老 0 被返回。

o []:索引运算符从字符串变量或常量中检索字符:它
返回一个字符串作为 右值. 因此,以下语句编译正常:

// 假设 str1 和 str2 是字符串
str1 = str2[3];

但以下语句无法编译:

str2[3] = "a";

如果提供了无效的索引值,则返回空字符串。

o `反引号`运算符(`字符串 命令`)
放置在两个反引号之间的字符串由 en(3) 功能。 这
存储在字符串参数中的命令生成的标准输出是
作为列表返回。 空列表表示无法执行该命令。
可以执行但不产生任何输出的命令返回一个列表
包含一个空元素。 命令的标准错误流输出不是
由反引号运算符收集。 但是,标准的外壳重定向可以是
用于收集标准错误流的输出。 例子:

printf(`"ls"`); // 打印元素
// 当前目录

预定义函数 评估(字符串 命令) 行为与反引号完全一样
运算符:它们是同义词。

列表类型 操作数:

针对 名单 类型变量和/或值可以使用以下运算符:

o a + b: 返回一个新的 名单 包含连接的值 名单 价值观 a
b。 这是 不能 集合操作:如果一个元素同时出现在 ab他们会
在结果列表中出现两次(set-addition 由内置的
功能 列表).

o a - b: 返回一个新的 名单 包含元素的值 a 不存在的
in b。 这 is 集差操作:返回的列表包含所有元素
in a 不是元素 b.

o a += b: 中的元素 b 添加到元素中 a,这一定是一个 名单
多变的。 这是 不能 一套操作。

o a -= b: 中的元素 b 从元素中删除 a,这一定是一个 名单
多变的。 这个 is 集合操作:所有元素 a 在中找到 b ,那恭喜你,
已经从...删除 a.

o 列出相等比较:运算符 !=== 可能适用于 名单 值或
变量。 操作员 == 如果两个列表逐个元素相同,则返回 1
元素,否则返回 0。 操作员 != 反转结果 ==.

o !a: 布尔值 ! 运算符返回 1 如果 名单 a 为空,否则为 0
回。

o []:索引运算符从列表变量中检索列表元素:它返回一个
字符串作为 右值. 因此,以下语句编译正常:

// 假设 lst 是一个列表,str 是一个字符串
str = lst[3];

但以下语句无法编译:

lst[3] = 海峡;

如果提供了无效的索引值,则返回空字符串。

铸造:

可以使用标准执行类型转换 C cast-operator 进行转换:

o 字符串到整数,反之亦然((int)"123", (字符串)55)

o 字符串到列表 (名单 LST = (列表)“你好”)

控制


爱奇艺 提供以下子集 C的声明。 它们可以用作 C
编程语言。

o 表达 ;
简单的表达式语句;

o 复合语句
任何类型的变量都可以在任何组合内的任何地方定义和初始化
陈述。 这 能见度 变量的定义从它的定义点开始。

o if (健康)状况) 声明
在条件内部,可以定义和初始化变量。 例如,

如果 (字符串 str = getText())
过程(字符串);

在这个例子中, 过程 如果不调用 getText() 返回一个空字符串。 这
变量 STR 在之前或之后都不存在 if 语句。

o if (健康)状况) 声明 其他 声明
与前面的语句一样,在条件内部可以定义一个变量,并且
初始化。

o (在里面; 状况; 增量) 声明
变量(单一类型)可以在
初始化 部分。 这 初始化, 流程条件增量 部分可能保持空白。 这
空条件部分被解释为“总是 true“。

o (健康)状况) 声明
在条件内部,可以定义和初始化变量。
一个补充 do ... 尽管() 声明不可用。 请注意,定义一个
变量,使用初始化表达式意味着初始化
表达式在每次迭代时执行 陈述。 所以以下
语句永远不会结束,并将显示一个永不结束的值流 10:

而 (int x = 10)
printf(x--, "\n");

o 返回;回报 表达;
朴素 回报 语句可以用于 无效 功能,和 回报 表达
语句用于其他类型的函数。 功能 有返回类型
无效 所以在 只是简单的 回报 可以使用语句。 默认情况下 制作
脚本的退出值等于 0。使用内置函数 出口 (见下文)指定
任何其他退出值。

Be 建议: 不返回值的非空函数的行为是未定义的。

o 打破
语句,否决语句的条件。

o 继续
继续下一次迭代 or 语句。

o 退出(表达式)
结束执行 制作-脚本。 这 表达 必须评估为 INT
值,它成为脚本的退出值。

预定义 职能


爱奇艺 提供以下预定义功能,可以在任何地方使用 制作
脚本。 以下概述按函数名称的字母顺序排列。

o 无效 arghead(字符串 h)
的辅助功能 exec() (另见下文 exec()): 定义‘参数头’,
用于 exec(). 默认情况下,“参数头”是一个空字符串。

o 无效 尾巴 (细绳 t)
的辅助功能 exec() (另见下文 exec()):定义‘参数尾部’,
用于 exec(). 默认情况下,`argument tail' 是一个空字符串。

o INT ASCII(字符串 s)
返回第一个字符 s 作为一个整数; 例如, ascii("A") 返回 65;

o 绳子 ASCII(整数 i)
退货政策 i 作为一个字符串,例如, ASCII(65) 返回字符串 “一个”;

o 绳子 change_base(字符串 文件, 绳子 新基地)
更改基本名称 文件, 返回更改后的名称。 例如,
change_base("/path/demo.im", “出去”) 回报 “/路径/out.im”;

o 绳子 change_ext(字符串 文件, 绳子 新的)
更改扩展名 文件, 返回更改后的名称。 例如,
rss_changeExt("source.cc", “哦”) 回报 “来源.o”;

o 绳子 更改路径(字符串 文件, 绳子 新路径)
更改路径规范 文件, 返回更改后的名称。 例如,
更改路径(“tmp/二进制”, "/ usr / bin") 回报 “/usr/bin/二进制”。 请注意
/如果需要,插入分隔符。

o 绳子 chdir(字符串 新目录)
更改脚本的工作目录,将前一个目录作为绝对目录返回
路径。

使用 chdir(".") 获取当前工作目录, chdir("") 可能习惯于
获取启动工作目录(此功能在发行版中被破坏
7.00 之前,但现在可以运行)。 该函数终止
制作-script 如果指定 新目录 不存在。

o 绳子 目录(整数 检查, 绳子 新目录)
与前一个功能相同的功能,但通过指定 检查 as
P_NOCHECK. 该函数不会终止脚本。 相反,它将返回
脚本的当前工作目录。

o cmdhead(字符串 h)
的辅助功能 exec() (另见下文 exec()): 定义一个“命令头”,以
用于 exec(). 默认情况下,`command head' 是一个空字符串。

o cmdtail(字符串 t)
的辅助功能 exec() (另见下文 exec()): 定义一个“命令尾”,以
用于 exec(). 默认情况下,`command tail' 是一个空字符串。

o 回声(整数 选择)
控制被调用程序(及其参数)的回显,指定 OFF 如果回声
没有被要求。 默认情况下 回声(开) 用来。

o 绳子 元素(整数 指数, 名单 (或 字符串) 变量)
作用与索引运算符相同:引用索引 ([]) 运算符
部分 操作员.

o 名单 评估(字符串 str)
此函数的作用与反引号运算符相同。 提供的示例
因此,反引号运算符也可以这样写:

printf(eval("ls")); // 打印当前元素
// 目录

o 执行(字符串 CMD, ...)
执行带参数的命令。 每个参数将以 参数头()
参数和后缀 argtail()的论点。 注意没有插入空格
之间 参数头()的内容,正确的参数,以及 argtail()的论点。 全部
因此修改后的参数被连接起来,这次用单个空格分隔,和
然后 命令头()的内容插入在命令和第一个参数之间
(两侧由单个空格分隔)和 命令尾()的内容被附加
到参数(同样,由一个空格分隔)。 PATH 被搜索定位
CMD. 返回 0。

o 执行(整数 检查命令, 绳子 CMD, ...)
与前一个功能相同的功能,但通过指定 检查 as
未检查 该函数不会终止脚本。 相反,它将返回
调用命令的退出状态,或 0x7f00 如果没有找到命令。

o 执行(字符串 CMD, 绳子 cmdhd, 绳子 啊, ..., 绳子 阿尔特尔, 绳子 命令)
与...一样 exec(), 但必须指定命令头/尾和参数头/尾。

实际执行的命令以 CMD,其次是 命令硬盘. 接下来是系列
参数如下,每个参数都由 阿格德argtl. 该命令以
命令行. 返回 0

o 执行(整数 检查, 绳子 CMD, 绳子 cmdhd, 绳子 啊, ..., 绳子 阿尔特尔,
绳子 命令)
与前一个功能相同的功能,但通过指定 检查 as
未检查 该函数不会终止脚本。 相反,它将返回
调用命令的退出状态,或 0x7f00 如果没有找到命令。

o INT 存在(字符串 文件)
返回一个非零值,如果 文件 存在,否则返回 0。

o 名单 fgets(字符串 文件, 名单 抵消)
注意: in 制作 版本 8.00.00 这个函数的原型从
名单 fgets(字符串 文件, INT 抵消)名单 fgets(字符串 文件, 名单 抵消).

在包含的偏移量处找到的下一行 抵消 是从 文件. 通过一个
空列表到 获取 读书 文件 从一开始。

它返回一个列表,其中包含读取行的内容作为其第一个元素
(没有 \n 行终止符),作为其第二个元素的行终止符`\n
(如果遇到),并将字符串作为它的第三个元素 OK 如果线路成功
读, 失败 如果从文件读取失败。 在 EOF 阅读时,空列表是
回来。 返回的列表可能包含其他元素,这些元素在内部
用于 获取 阅读下一行时。

要读取多行,首先传递一个空列表作为 得到的 第二个论点。
要读取后续行,请将先前返回的列表传递给 fgets的 第二
论据。

这是一个显示如何读取完整文件的示例:

列表 ret;
而(1)
{
ret = fgets("文件名", ret);
如果 (!ret)
打破;
进程(ret[0],ret[1]);
}

o INT fprintf(字符串 文档名称, ...)
将所有(逗号分隔的)参数附加到文件中 文件名. 返回数量
打印参数。

o INT fprintf(字符串 文档名称, 绳子 格式, ...)
将所有(逗号分隔的)参数附加到文件中 文件名. 返回数量
打印参数。

If 格式 包含占位符 %1 .. %n 输出已格式化(另请参阅
格式)。 请注意,在这种情况下,参数计数(也)开始于
格式字符串:后面的第一个参数 格式 被称为 %1.

o 绳子 get_base(字符串 文件)
返回基本名称 文件. 基本名称是没有路径前缀的文件
并且没有它的扩展。 扩展名是从最后开始的所有信息
文件名中的点。 如果未找到最后一个点,则文件名是基本名称。
例如,基本名称 b 等于 a, 的基本名称 美国广播公司 等于 b,基
的名字 一/二/三 等于 c.

o 绳子 获取()
以字符串形式返回下一个按下的键(不需要按“Enter”)。

o 绳子 get_dext(字符串 文件)
返回扩展名 文件,包括分隔点。 扩展名是全部
从文件名的最后一个点开始的信息。

如果没有找到最后一个点,则返回一个空字符串。

o 名单 getenv(字符串 环境变量)
返回环境变量的值 环境变量 在包含两个元素的列表中:

第一个元素指示是否定义了环境变量(值
“1”) 或不 (值 “0”);
第二个元素表示环境变量的值。

环境变量的形式为 变量=值, 如果定义了列表的
第二个元素包含 折扣值. 如果值为空,则定义变量,但
没有与之关联的文本。

o 绳子 get_ext(字符串 文件)
返回扩展名 文件,除了分隔点。 扩展名是全部
从文件名的最后一个点开始的信息。

如果没有找到最后一个点,则返回一个空字符串。

o INT 获取PID()
返回 icmake 字节码解释器的 process-id icm执行.

o 绳子 gets()
返回从键盘读取的下一行作为 绳子. 输入的行
键盘必须以“Enter”键终止,该键不存储在返回的
字符串。

o 绳子 获取路径(字符串 文件)
返回路径前缀 文件. 路径前缀是所有信息(和
包括)最终的目录分隔符(这取决于操作
系统、正斜杠或反斜杠)。

如果未找到路径,则返回空字符串。

o INT 列表查找(列表 首先, 绳子 str)
返回第一个索引 LST 字符串在哪里 STR 找到,或者 -1 如果 LST 才不是
包含 STR.

o INT 听(列表 l)
返回元素的数量 名单.

o 名单 列表(列表 呵呵, 名单 呼)
返回一个包含元素联合的列表 hRHS.

o 名单 列表(列表 首先, 绳子 str)
返回一个包含元素联合的列表 LSTSTR.

o 名单 制作清单(字符串 面具)
返回所有匹配文件的列表 面膜. 例如, 制作清单(“*.c”) 返回一个列表
包含所有以 .c.

o 名单 制作清单(类型, 绳子 面具)
与上一个函数相同,但目录元素的类型可能是
指定为其第一个参数:

符号含义
IS_ALL 获取所有目录条目
IS_DIR 获取所有目录,包括 . 和 ..
IS_FILE 获取文件列表
IS_SUBDIR 获取所有子目录

注意图案 * 将不匹配 Unix 类型操作下的隐藏条目
系统。 用 .* 对于这一点。

o 名单 制作清单(字符串 面具, 较新, 绳子 比较文件)
返回比提供的新的掩码匹配的所有文件的列表
比较文件。 操作员 年轻的 可以代替 较新。 注意 较新
年轻的 是运算符,而不是字符串。

o 名单 制作清单([int = IS_FILE,] 绳子 面具, 较新, 绳子 比较文件)
与之前的功能相同,但 类型 可以指定为 名单 制作清单(类型,
绳子 面具).

o 制作清单(字符串 面具, 年纪大了, 绳子 比较文件)
看上面; 返回比比较文件更旧的文件列表。

o 制作清单(类型, 绳子 面具, 年纪大了, 绳子 比较文件)
与之前的功能相同,但 类型 可以指定为 名单 制作清单(类型,
绳子 面具).

o INT 打印输出(...)
显示所有(逗号分隔)参数到 screen(即标准输出流)。
返回打印参数的数量。

o INT printf(字符串 格式, ...)
显示所有(逗号分隔)参数到 screen(即标准输出流)。
返回打印参数的数量( 格式 字符串算作一个参数)。

If 格式 包含占位符 %1 .. %n 输出已格式化(另请参阅
格式).

o INT putenv(字符串 环境变量)
添加 环境变量 到当前 (制作) 环境 使用格式:“VAR=value”。
返回0。

o 绳子 调整大小(字符串 斯特, INT 新长度) 返回字符串的副本 STR,调整为
新长度 人物。 如果 新长度 为负则返回一个空字符串,
if 新长度 超过 str的 length 然后初始化新添加的字符
到空格。

o INT 大小(列表 l)
弃用:使用 .

o INT 大小列表(列表 l)
弃用:使用 .

o 名单 统计(字符串 入口)
退货政策 统计(2) 目录项信息 条目 作为列表。 返回的列表
有两个元素:元素 0 是 属性 折扣值, 元素 1 包含的大小
文件。

属性作为位标志返回,由以下预定义组成
常数:

S_IFCHR S_IFDIR S_IFREG
S_IREAD S_IWRITE S_IEXEC

查看 统计(2) 这些常量的含义的手册页。

o 名单 统计(检查, 绳子 入口)
与前一个函数相同,但通过指定 检查 as P_NOCHECK 功能
不会终止脚本。 相反,它返回 统计(2)的返回值。

o INT strchr(字符串 斯特, 绳子 字符)
返回第一个索引 STR 其中的任何字符 字符 找到,或 -1
if STR 不包含任何字符 字符.

o INT 字符串(字符串 str)
返回中的字符数 STR (不计算最后的 0)。

o INT strfind(字符串 草垛, 绳子 针)
返回索引 草垛 哪里 找到,或者 -1 如果 不包含
in 草垛.
本篇 功能 被称为 字符串字符串() in 版本 before 7.00.

o INT 字符串格式(字符串 格式,...)
使用占位符 %1 .. %2 返回格式化字符串以寻址参数
以下格式。
示例:

void main()
{
int i = 10;
整数 j = 20;
字符串 s1;
字符串 s2;
// 传统方法:
s1 = (string)i + " " + (string)j + " " + (string)i;
// 使用str格式:
s2 = strformat("%1 %2 %1", i, j);
printf("s1 = %1, s2 = %2\n", s1, s2);
}

o 绳子 strlwr(字符串 s)
返回一个小写的副本 s.

o 名单 strtok(字符串 斯特, 绳子 分隔符)
返回一个包含所有子串的列表 STR 由一个或多个分隔
(连续)字符在 分隔符. 例如, strtok("你好 icmake的+世界", " +")
返回包含三个字符串的列表 “你好”, “icmake的”“世界”.

o 绳子 strupr(字符串 s)
返回一个大写的副本 s.

o 绳子 子字符串(字符串 文字, INT 抵消, INT 数数)
返回一个子串 文本处开始, 抵消, 包含由...组成 人物。 如果
抵消 超过(或等于)字符串的大小,或者如果 <= 0,然后是一个空字符串
被退回。 如果 抵消 小于 0 则使用 0。

o INT 系统(字符串 命令)
执行 命令. 返回值表示执行命令的退出值。 这
绳子 命令 可能包含重定向和/或管道字符。

o INT 系统(整数 检查, 绳子 命令)
与前一个功能相同的功能,但通过指定 检查 as
未检查 该函数不会终止脚本。 相反,它将返回
调用命令的退出状态,或 0x7f00 如果没有找到命令。

o 绳子 修剪(字符串 s)
返回一个副本 s 没有前导和尾随空格。

o 绳子 修剪左(字符串 str)
返回一个副本 s 没有前导空格。

o 绳子 修剪(字符串 s)
返回一个副本 s 没有尾随空格。

USER 定义 职能


无效

爱奇艺 必须为脚本提供用户定义的函数 。 功能 具有
三个可选参数,最后一个可以省略(环境) 到第一个
(氩气), 像 C. 它的完整原型是(注: 无效 返回类型):

void main(int argc,列出 argv,列出 envp)

In 主(),

o 氩气 表示中元素的数量 精液;

o 精液 包含参数,元素 0 等于 .bim 的名称
文件;

o 环境 包含“环境”变量。 功能 可用于
确定其元素的数量。 中的元素 环境 有形式
变量=值. 或者,函数 获取环境 可用于检索
特定的环境变量立即。 例子:

void main(int argc,列表 argv)
{
要编译的列表;
国际idx;

如果(argc == 1)
用法(元素(0,argv));

if (toCompile = changed("*.cc"))
{
对于 (idx = length(toCompile); idx--; )
编译(元素(idx,toCompile));

if (getenv("dryrun")[0] == "0")
链接(元素(2,argv));
}
}

按照定义的顺序初始化所有全局变量 被称为
制作的运行时支持系统来执行额外的任务。

另外 定义 用户 功能

可以定义附加功能。 一旦定义,就可以调用这些函数。 向前
不支持引用变量或函数,但递归调用
功能是。 由于不支持函数声明,因此不支持间接递归
要么支持。

用户定义的函数必须具有以下元素:

o 函数的返回类型,必须是以下之一 空白, 内部, 绳子 or 名单。 那里
没有默认类型。

o 函数的名称,例如, .

o 参数列表,定义零个或多个逗号分隔的参数。 参数
本身由一个类型名称(内部, 绳子名单) 然后是
参数的标识符。 例如, (细绳 输出文件, 绳子 资源).

Ø 身体 由一对花括号 ({}).

函数体可能包含(可选初始化)变量定义。 多变的
定义以类型名称开头,后跟一个或多个逗号分隔(可选
初始化)变量标识符。 如果变量未显式初始化,则为
默认初始化。 默认情况下 INT 变量被初始化为 0,一个 绳子 is
初始化为空字符串 ("")和一个 名单 被初始化为一个零元素列表。

除了变量定义之外,主体可能包含零个或多个语句(参见
部分 控制)。 请注意,可以定义变量(并可选地初始化)
函数内部的任何地方,以及 如果, 声明。

的行为 制作- 使用不返回值的非空函数的脚本不是
定义。

使用 onworks.net 服务在线使用 icmake


免费服务器和工作站

下载 Windows 和 Linux 应用程序

Linux 命令

Ad