用C怎么得到文件的权限

饥饿书生 2011-02-26 09:54:22
在终端中我们可以直接查看权限,但是像复制命令:cp,在实现复制的时候至少应该先知道被复制的文件是什么权限的吧?那在C编程中有什么方法或者函数能得到一个文件或文件夹的权限吗?
...全文
34 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
饥饿书生 2011-02-26
  • 打赏
  • 举报
回复
哦 明了~~~thank you!!
justkk 2011-02-26
  • 打赏
  • 举报
回复

#include <sys/stat.h>

char szMode[16]; // 权限信息
struct stat st;

if( lstat("yourfile", &st) < 0 )
{
perror("lstat");
exit(0);
}

// 初始化权限信息
strcpy(szMode, "-----------");

/* 判别文件类型 */
if( S_ISDIR(st.st_mode) )
szMode[0] = 'd';
else if( S_ISLNK(st.st_mode) )
szMode[0] = 'l';

if( st.st_mode & S_IRUSR )
szMode[1] = 'r';
if( st.st_mode & S_IWUSR )
szMode[2] = 'w';
if( st.st_mode & S_IXUSR )
szMode[3] = 'x';
if( st.st_mode & S_IRGRP )
szMode[4] = 'r';
if( st.st_mode & S_IWGRP )
szMode[5] = 'w';
if( st.st_mode & S_IXGRP )
szMode[6] = 'x';
if( st.st_mode & S_IROTH )
szMode[7] = 'r';
if( st.st_mode & S_IWOTH )
szMode[8] = 'w';
if( st.st_mode & S_IXOTH )
szMode[9] = 'x';

23,120

社区成员

发帖
与我相关
我的任务
社区描述
Linux/Unix社区 应用程序开发区
社区管理员
  • 应用程序开发区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧