1..文件和目录
- 推荐得文件名 .-_数字 字母
- 绝对路径:以/开头得文件 相对路径:非/开头
- 文件描述符
标准输入: 0
标准输出:1
标准错误输出:2
- 错误码 #include<errno.h>
errno
打印错误信息
void perror(char* msg)
输出:msg: 错误信息
2.限制
- 获取系统实际支持得限制
syconf pathconf fpathconf
3.文件I/O
- 不带缓冲得I/O,原子操作
open creat close lseek read write
- 原子操作:pread pwrite 不更新文件偏移量
- dup fcntl 复制打开得文件描述符
- 同步函数 fsync sync fdatasync
- 获取、设置文件状态 fcntl 只读只写等
- fopen("/dev/fd/0",O_RDWR)相当于复制标准输入
4.文件类型
- stat获取与文件有关得信息结构
- 设置用户ID得程序获得额外权限
- access判断文件存在、读写权限
- umask 设置当前进程文件创建模式屏蔽字,屏蔽掉相关权限
umask(S_IRGRP|S_IWGRP) 创建文件不具有组写和读权限
- chmod fchmod 更改现有文件权限
- 黏着位 具有特殊权限得才能删除文件
- 文件得空洞:因为lseek超过其实际长度引起,不占用实际内存
- 文件截断:truncate ftruncae
- 硬链接:link unlink
open之后,立即unlink,保证进程关闭后,文件被删除
- remove rename renameat
- (符号)软连接:symlink readlink
- 设置文件时间:futimens
- 文件目录 mkdir rmdir
- 读取目录:opendir readdir rewinddir closedir telldir seekdir
- 当前工作目录:chdir fchdie getcwd
5.标准I/O库
- fwide 设置流定向 多字节或ascII
- 全缓冲、行缓冲、不带缓冲(错误输出) setbuf
- fflush强制冲洗流
- fopen fseek fclose frrror feof getc rewind gets fread fwrite printf sscanf
- fileno获取标准I/O流对应得文件描述符
- 临时文件 tmpnam tmpfile
- 内存流 fmemopen open_memstream
6.系统数据文件和信息
- 口令(/etc/passwd):getpwuid getpwnam ....
- 密码(/etc/shadow):getspname getspentnam
- 组文件(/etc/group):getgrgid getsgrnam
- /etc/networks /etc/hosts...
- 时间 time 秒数 clock_gettime 纳秒
- strftime 格式化时间 strftime(buf2, 64, "time and date: %r, %a %b %d, %Y", tmp) == 0
- strptime 解析时间