在VxWorks卜,“文件”提供了访问设备的统一接口,因此是一种广义的概念,“文
件”名包括了两部分的信息.
所要访问设备的名称
所要访问的具体的文件(这个就是常规意义的文件了)
iosFdShow显示的fd句柄中缺少0, 1和2这二个句柄,这二个
句柄和其它很多操作系统一样是保留给标准输入输出使用的:
0 stdin标准输入
1 stdout标准输出
2 stderr标准错误输出
这二个句柄是缺省打开的,任何程序都可以直接操作这二个句柄,比如在DOS操作
系统中,缺省时stdin就对应键盘,stdout和stderr就对应屏幕,而对于VxWorks操作
系统,通常没有键盘和屏幕,那么这些句柄会在系统初始化时对应到相应的设备上,
我们可以通过iosFdShow看出标准输入输出句柄和设备的对应关系,比如:
一>iosFdShow
fd name drv
3 /tyCo/0 1 in out err
4 (socket) 3
5 (socket) 3
6 (socket) 3
7 (socket) 3
这里我们看到,在fd 3的drv之后标注了“in out err",这就是表明当前的标准输
入,标准输出以及标准错误输出都是对应句柄3(这这里是串口),当标准输入输出
被重定向之后,就可能不是这种对应关系了.
Basic I/0---例如write(),read()
stdio-------例如fwrite(),fread()
很容易理解Basic I/O接口和stdio的区别,和其它操作系统一样,stdio提供了buffer
I/O功能,而Basic I/O没有提供,也就是说在使用stdio提供的接口时,输入输出依赖
于一个缓冲区,只有缓冲区空或者满时才会操作设备,大多数情况卜,这可以显著提
供效率。