基于 ARM 体系结构的环境的命令行到 main()
中参数的映射是与执行相关的。
通用的 ARM C 库支持以下内容:
赋予 main()
的参数是指该命令行中一些不包括输入/输出重定向的字,字与字之间用空格分隔,但包含在双引号中的空格除外。
在 isspace()
结果为
true 的情况下,空格字符是任意字符。
双引号或双引号之内的反斜杠字符 \
的前面必须有一个反斜杠字符。
输入/输出重定向在双引号之内不会被识别。
在 ARM C 库的非主机执行中,术语交互设备可能无意义。 通用的 ARM
C 库支持两个都称为 :tt
的一对设备,它们用于处理键盘输入和 VDU 屏幕输出。 在通用执行中:
除非输入/输出重定向已发生,否则在连接 :tt
的任何流中都不进行缓冲处理
如果输入/输出已重定向到 :tt
以外的地方,则使用整个文件缓冲处理,但如果 stdout
和 stderr
都被重定向到同一个文件,则使用行缓冲处理。
使用通用的 ARM C 库,可以在运行时重定向标准输入、输出和错误流。 例如,如果 mycopy
是一个运行在主机调试器上的程序,该程序将标准输入复制到标准输出,则使用以下行运行该程序:
mycopy < infile > outfile 2> errfile
并按如下方式重定向文件:
stdin
标准输入流重定向至 infile
。
stdout
标准输出流重定向至 outfile
。
stderr
标准错误流重定向至 errfile
。
允许的重定向为:
0< filename
从
读取 filename
stdin
。
< filename
从
读取 filename
stdin
。
1> filename
将 stdout
写入
。filename
> filename
将 stdout
写入
。filename
2> filename
将 stderr
写入
。filename
2>&1
将 stderr
写入与 stdout
相同的位置。
>& file
将 stdout
和 stderr
都写入
。filename
>> filename
将 stdout
附加至
。filename
>>& filename
将 stdout
和 stderr
都附加至
。filename
要重定向目标上的 stdin
、stdout
和 stderr
,必须进行以下定义:
#pragma import(_main_redirection)
仅在以下两种情况下进行文件重定向:
调用操作系统支持文件重定向
程序读写字符而并不替换 C 库函数 fputc()
和 fgetc()