文件描述符
files
是一个文件指针数组。一般来说,一个进程会从files[0]读取输入,将输出写入files[1],将错误信息写入files[2]。每个进程被创建时,files
的前三位被填入默认值,分别指向标准输入流、标准输出流、标准错误流。我们常说的文件描述符就是指这个文件指针数组的索引。
因此可以认为标准输入流、标准输出流和标准错误流都是文件指针。我们在做输出重定向的时候其实就是改变指针的指向。
比如一个命令
java sevice.jar >log &
就是把标准输入流重定向到了文件log中
如果是要把标准错误流也输出到文件log中,可以如下操作:
java serive.jar >log 2>&1 &
2>&1
表示的是让标准错误输出流的指针指向标准输出流,此时标准输出流的指针已经指向了log文件,故标准错误流也输出到了文件log。&
这里表示后面接着一个文件描述符!
最后的&
表示后台运行进程。