文件类型:
-r 普通文件(regular)
-d 目录文件(directory)
-b 块特殊文件(block special)
-c 字符特殊文件(characterspecial)
-p 管道文件(pipe)
-s 套接字文件(socket)
-l 符号链接文件(symbolic link)
文件I/O操作相关函数:
文件描述符操作:dup dup2
不带缓冲的Linux文件系统调用:open close read write lseek
改变文件权限:chmod fchmod
改变文件所有者:chown fchown lchown
硬链接操作:link ulink remove
基于流的文件操作:
带缓冲的流操作库函数:fopen fclose fread fwirte flseek
字符I/O操作:fgetc fputc feof ferror
行I/O操作:fgets fputs 遇到'\n'结束
格式化I/O操作:printf fprintf sprintf snprintf scand
缓冲:
1.全缓存:直到缓冲区被填满,才调用系统I/O函数。
2.行缓存:直到遇到换行符\n,才调用系统I/O函数。stdin和stdout默认都是行缓存的。
3.无缓存:没有缓冲区,数据会立即读入或输出到外存文件或设备上。stderr是无缓存的。
缓冲操作相关函数:
设置缓冲的属性:setbuf setbuffer setlinebuf setvbuf
缓冲的冲洗:fflush
硬链接和符号链接
1.硬链接:直接指向文件的inode,是有着相同inode但文件名不同的文件。
硬链接要求链接和文件位于同一个文件系统中。
只有超级用户才能创建指向目录的硬链接。
删除一个硬链接并不影响具有形同inode的文件。
2. 符号链接:是对一个文件的间接指针,符号链接文件中包含了另一个文件的路径。
符号链接无相同文件系统的限制。
任何用户都可以创建文件和目录的符号链接。