通过最近的面试,发现语言方面已经有了足够的底气,但是linux的了解还不充足。以后每天加把劲,快速把UNIX高级环境编程看完。
一、文件
1、> , < ,这两个操作表示向某个文件输入和输出,例如./a.out >d。
面试题:exec 2>/dev/null 这是一个重定向操作,表示将文件描述符2的输出定向到/dev/null,这是一个空文件,所以是一个屏蔽标准错误的操作(文件描述符:0标准输入,1标准输出,2标准错误)
2、IO效率,对文件操作的最高效率是每次读取/写入文件系统块长的数据(4096,与socket类似)
3、fcntl:对文件属性操作,与ioctl同一概念
二、目录文件(平时比较少用)
1、stat、fstat、lstat,用于获取文件属性(结构是struct stat),最好用lstat,因为stat函数跟随符号链接符(从而导致一个遍历函数递归死循环)。
2、umask 屏蔽文件权限(进程的),chmod,fchmod用于修改文件权限
3、chown,fchown,lchown修改文件所属id(基本用不上)
4、truncate、ftruncate修改文件长度
5、文件系统体系(除非要做目录管理,基本看看就可以了)
6、link、unlink、remove、rename
7、符号链接(间接指针,感觉像windows下某个目录的快捷方式),symlink创建,readlink用于读取
8、utime,修改文件属性时间
9、目录操作函数mkdir、rmdir、chdir、fchdir、getcwd
(待续)