1.stat 获取文件属性
#include <sys/types.h>
#include <sys/stat.h>
#include <unistd.h>
int stat(const char *filename,struct stat *buf);
int fstat(fd, struct stat *buf);
int lstat(const char *filename, struct stat *buf);
fstat与stat的区别是fstat通过文件描述符指定文件;lstat与stat的区别在于,对于符号连接文件,lstat返回的是符号链接文件本身的状态信息,而stat返回的是符号链接指向的文件状态信心。
成功返回0,错误范围-1
2. chown 设置文件属性
#include <sys/types.h>
#include <unistd.h>
int chown(const char *path,uid_t owner, gid_t group);
int fchown(int fd, uid_t owner, gid_t group)’
int lchown(const char *path, uid_t owner,gid_t group);
fchown与chown的区别是fchown通过文件描述符指定文件;lchown与chown的区别在于,对于符号连接文件,lchown返回的是符号链接文件本身的状态信息,而chown返回的是符号链接指向的文件状态信心。
成功返回0,错误范围-1
文件的所有者只能改变文件的组id为其所属组中的一个,超级用户才能修改文件的所有者id,并且超级用户可以任意修改文件的用户组id。如果参数owner或group指定为-1,那么文件的用户id和组id不会被改变。
3. truncate 改变文件大小
#include <sys/types.h>
#include <unistd.h>
int truncate(const char *path, off_t length);
int ftruncate(int fd, off_t length);
将指定文件大小改为参数length指定的大小,如果原来的文件比参数length大,则超过的部分会被删除;如果原来的文件大小比参数length小,则文件将被扩展,扩展部分用0填充。
成功返回0,错误范围-1
4. utime 改变文件的st_mtime域和st_ctime域,即存取时间和修改时间。
#include <sys/types.h>
#include <utime.h>
int utime(const char *filename,struct utimbuf *buf);
#include <sys/time.h>
int utime(char *filename,struct timeval *tvp);
struct utimbuf
{
time_t actime;