day26- 系统编程之 文件IO(II) 及 文件属性
一、文件IO函数(续)
1.1 lseek函数:(与fseek用法相似)
off_t lseek(int fd, off_t offset, int whence);功能:
定位光标的位置
参数:
fd:文件描述符
offset:偏移量

1.2 fileno函数
int fileno(FILE *stream);功能:
获得一个文件流指针中的文件描述符
参数:
stream:文件流指针
返回值:
成功返回文件描述符
失败返回-1

1.3 fdopen函数
FILE *fdopen(int fd, const char *mode);
- 功能:
将文件描述符转化为文件流指针
- 参数:
fd:已经打开的文件描述符
mode:
"r"
"r+"
"w"
"w+"
"a"
"a+"
- 返回值:
成功返回文件流指针
失败返回NULL

1.4 perror函数(系统级别报错函数)
void perror(const char *s);标识性信息,写对应的函数,如fopen main.c;10作用是将上一个函数发生错误的原因输出到标准错误输出(stderr)
适用于man2、man3的函数使用,第三方库就不行;

1.5 文件权限
| fopen | open | 
| w | O_WRONLY|O_CREAT|O_TRUNC | 
| w+ | O_RDWR|O_CREAT|O_TRUNC | 
| r | O_RDONLY | 
| r+ | O_RDWR | 
| a | O_WRONLY|O_CREAT|O_APPEND | 
| a+ | O_RDWR|O_CREAT|O_APPEND | 
二、 目录(只读)
.和..为隐藏目录,任何目录下都存在.和..
2.1 操作步骤
1,打开目标目录 opendir
2.读取目录 readdir
3.关闭目录 closedir目录 当文件看,只不过操作函数和操作文件函数不一样
 DIR表示目录流指针
         DIR表示目录流指针
direntry表示一次取整体目录的一条
2.2 相关函数
2.2.1 opendir函数
DIR *opendir(const char *name);返回值:成功,返回目录流指针;否则,返NULL;

2.2.2 readdir函数
struct dirent *readdir(DIR *Dirp);struct dirent的结构体:
其中,我们可能使用:
char d_name[256]; //文件名
unsigned char d_type; //文件类型
文件类型:
块设备,存储类,硬盘、光盘等 字符设备,如鼠标、键盘等 目录 管道 符号链接也称软连接,与windows的桌面快捷方式类似 普通文件 网络文件 不认识 


2.2.3 closedir函数
int closedir(DIR *dirp);

2.3 时间函数
2.3.1 time函数//秒数
time_t time(time_t *tloc);
若传入NULL,返回秒数
2.3.2 localtime函数//日期
struct tm *localtime(const time_t *timep);
 
 
三、总结



 
 



