获取文件的属性信息及其操作函数

一、获取文件属性信息
int stat(const char *path, struct stat *buf);
int fstat(int filedes, struct stat *buf);           (获取一打开文件的属性)
int lstat(const char *file, struct stat *buf);      (获取软连接的信息)
功能:获得文件的属性信息 
参数:
@path  文件所在的路径 
@buf   获得的属性信息存放的地址 
返回值:成功返回0,失败返回 -1 

二、通过id获得组名和用户名
  getwuid(u_id)      返回一个数组,包含用户名等信息 包含一个头文件  struct passwd
  getgrgid(g_id)     返回一个数组,包含组名等信息   包含头文件      struct group

三、文件权限关键字更改
umask(0777) 文件的权限 = 设置权限 & ~umask

四、更改文件存取权限

int chmod( char *path ,mode_t mode)     更改权限
int fchmod(int fd,mode_t mode)      更改打开的文件的权限
@mode_t 就是一个八进制的三位数

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);           软连接

五、文件截断

int truncate(const char *path,off_t length);          length大于文件大小扩展,小于截断
int ftruncate(int fd,off_t length);                                  打开的

六、链接
int link(const char *path1 const char *path2);  建立1的硬链接2

int symlink(const char *path1 const char *path2);  建立1的软链接2

int ulink(const char *path)                    删除一个硬链接

注:当一个文件在系统中打开的次数为0 硬链接数为0时就被删除
七、删除
int remove(const char *path);

八、重命名
int rename(const char *old,const char *new);


 
  
  

你可能感兴趣的:(linux)