utime函数
我们需要知道UNIX文件有三个时间,分别是文件数据的最后访问时间(st_atime)、文件数据的最后修改时间(st_mtime)、文件的状态修改时间(st_ctime)。
一个文件的访问和修改时间可以用utime函数更改。
#include<utime.h>
int utime(const char *pathname,const struct utimebuf *times);
返回值:若成功则返回0,否则返回-1.
此函数所使用的数据结构是:
struct utimebuf {
time_t actime;//文件的访问时间
time_t modtime;//文件数据的修改时间
}
时间 均是自1970年1月1日00:00:00以来国际标准时间所经过的秒数。
- 如果times是一个空指针,则访问时间和修改时间两者都设置为当前的时间。为了执行此操作必须满足下列条件之一:进程的有效用户ID必须等于该文件的所有者ID;或者进程对该文件具有写权限。
- 如果times是非空指针,则访问时间和修改时间两者被设置为times所指结构中的值。此时,进程的有效用户ID必须等于该文件的所有者ID,或者进程必须是一个超级进程用户进程。
mkdir和rmdir函数
mkdir函数创建目录,rmdir函数删除目录。
#include<sys/stat.h>
int mkdir(const char *pathname,mode_t mode);
返回值:若成功返回0,否则返回-1.
此函数创建一个新的空目录。其中,..和.目录是自动创建的。
rmdir函数可以删除一个空目录。空目录是只包含..和.这两个的目录。
#include<unistd.h>
int rmdir(const char *pathname);
返回值:若成功返回0,否则返回-1.
读目录
#include<dirent.h>
DIR *opendir(const char *pathname);
返回值:若成功返回指针,否则返回NULL。
struct dirent *readdir(DIR *dp);
返回值:若成功返回指针,若在目录结尾或出错返回NULL。
void rewinddir(DIR *dp);
int closedir(DIR *dp);
返回值:若成功返回0,否则返回-1.
long telldir(DIR *dp);
返回值:若成功返回与dp关联的目录中的当前位置。
void seekdir(DIR *dp,long loc);
头文件<dirent.h>中定义的dirent结构与实现有关。但至少包含以下两个成员:
struct dirent {
ino_t d_ino;
char d_name[NAME_MAX+1];
}