当前位置:操作系统 > 安卓/Android >>

Android培训班(27)

<!-- @page { margin: 2cm } P { margin-bottom: 0.21cm } -->

初看这段代码时,感觉非常奇怪,没有看到任何打开文件的函数,也没有任何关闭文件的函数,就可以直接操作读取和写入。难道文件是可以自动打开的吗?从linux系统调用API里知道是不可能啊!这时,反复查看输入的命令行,如下:

rgb2565 –rle <xiyang.raw >initlogo.rle

从这个命令行里,看到一些眉目了吧?两个文件为什么要添加像个括号的东西呢?是啊,这两个括号是有特别用途的,对于我刚从WINDOWS转过的程序员来说,是比较奇怪,后来仔细地查看shell调用,详细介绍如下:

标准输入
标准输入是文件描述符0.它是命令的输入,缺省是键盘,也可以是文件或其它的命令输出

标准输出
标准输出是文件描述符1.它是命令的输出,缺省是屏幕,也可以是文件


标准错误
标准错误是文件件描述符2。它是命令错误码率的输出,缺省是屏幕,同样也可以是文件.


重定向操作符描述
> 将命令输出写入到文件或设备(如打印机),而不是命令提示符窗口或句柄。


< 从文件而不是从键盘或句柄读入命令输入。


>> 将命令输出添加到文件末尾而不删除文件中已有的信息。

>& 将一个句柄的输出写入到另一个句柄的输入中。

<& 从一个句柄读取输入并将其写入到另一个句柄输出中。

| 从一个命令中读取输出并将其写入另一个命令的输入中。也称作管道。

常用文件重定向命令

Shell代码

command >filename       把标准输出重定向到一个新文件中

command >>filename      把标准输出重定向到一个文件中(追加)

command 1>fielname      把标准输出重定向到一个文件中

command >filename 2>&1   把标准输出和标准错误一起重定向到一个文件中

command 2 > filename 把标准错误重定向到一个文件中

command 2 >> filename 把标准输出重定向到一个文件中(追加)

command >> filename 2>&1 把标准输出和标准错误一起重定向到一个文件中(追加)

command < filename >filename2 把command命令以filename文件作为标准输入,以filename文件作为标准输出

command < filename 把command命令以filename文件作为标准输入

command << delimiter 把从标准输入中读入,直至遇到delimiter分界符

command <&m 把把文件描述符m作为标准输入

command >&m 把把标准输出重定向到文件描述符m中


从上面详细说明中,就可以知道这个命令行特别地方了。第二个参数<xiyang.raw就是把文件xiyang.raw重定向为标准输入,也就是原始格式的数据作为输入文件打开。

第三个参数>initlogo.rle,就是作为标准输出文件打开了。

 

通过这段程序,可以了解写程序的人对linux很熟悉,并且利用到了极致,连文件的打开和关闭的事情都省了,极其高效

补充:移动开发 , Android ,
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,