带来的好处就是, 你可使用同一套api(read, write)和工具(cat , 重定向, 管道)来处理unix中大多数的资源.这就使得组合了简单的命令和字符处理工具(awk, sed)以后, shell脚本就能发挥出强大的功能.html
Linux下文件通常有以下几种类型:mysql
1.普通文件 # xxx.log 2.目录 # /usr/ /home/ 3.字符设备文件 # /dev/tty的属性是 crw-rw-rw- ,注意前面第一个字符是 c ,这表示字符设备文件,好比猫等串口设备 4.块设备文件 # /dev/hda1 的属性是 brw-r----- ,注意前面的第一个字符是b,这表示块设备,好比硬盘,光驱等设备 5.套接字文件 # /var/lib/mysql/mysql.sock srwxrwxrwx 6.管道 # pipe 7.符号连接文件 # softlink...
虽然对文件的操做就那么几个,可是因为linux把全部的设备、文件的操做都统一了,因此这些系统调用会有不少参数来处理各类类型的文件,因此仍是有点复杂的,这里的复杂有一点是若是你尚未全面掌握各类类型的文件操做,读文档的时候就会遇到某些参数一脸懵逼,不知所云,好比 O_NONBLOCK 这个标志对普通的文件是不起做用的,对什么文件起做用?那你得操做块设备,字符设备,FIFOs (named pipes),因此这里须要有比较系统全面的知识才能看的比较通透linux
详细的系统调用说明参考 man或系统文档 man-fileopengit