LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 1232|回复: 5

得到文件权限的小程序

[复制链接]
发表于 2003-4-11 10:16:23 | 显示全部楼层 |阅读模式
这里得到的权限是以八进制数表示的,有兴趣的兄弟可以把它改成rwxrwxrwx的形式。

  1. /* 用于检查文件权限的程序 */
  2. #include<unistd.h>                /* 必须最早出现,它根据POSIX定义的标志会影响其他的头文件 */
  3. #include<stdio.h>
  4. #include<fcntl.h>
  5. #include<sys/stat.h>
  6. #include<sys/types.h>
  7. #include<stdlib.h>

  8. int main(int argc, char *argv[])
  9. {
  10.         int fd;                        /* 文件描述符 */
  11.         struct stat statbuf;        /* 文件状态信息 */
  12.         mode_t modes;                /* 文件权限与文件类型信息 */
  13.        
  14.         /* 如果参数不对,退出 */
  15.         if(argc != 2) {
  16.                 printf("usage: ./a.out filename\n");
  17.                 exit(1);
  18.         }
  19.        
  20.                
  21.         /* 获得文件权限与文件类型信息 */
  22.         stat(argv[1], &statbuf);
  23.         modes = statbuf.st_mode;
  24.        
  25.         /* 得到st_mode的文件权限部分(以八进制表示) */
  26.         printf("file mode %o\n", modes & 0x01ff);
  27.        
  28.         exit(0);
  29. }
  30.        
复制代码
发表于 2003-4-13 00:27:34 | 显示全部楼层

我对在linux下的编程不懂,请多多指教?

谢谢了:)
发表于 2003-4-14 13:24:38 | 显示全部楼层

为什么再丰富一下

为什么再丰富一下。
比如,写成文字界面, 可重新设置权限等。
 楼主| 发表于 2003-4-14 15:11:13 | 显示全部楼层
当然可以。用chmod函数就可以改变文件权限。你可以自己试试。
发表于 2003-4-14 22:34:32 | 显示全部楼层
我对C编程还可以,不过在LINUX下我确实不知从何下手,那么多的头文件,都不知到底是什么时间用?这是最大的迷茫之处了
请多多指教。谢谢L(
发表于 2003-4-15 00:18:02 | 显示全部楼层
鼓励写这种程序练习用。但是工作中真正简单的方法是使用前辈们写好的程序 什么 ls, chmod 啦,用 shell 就好了,还可以到处跑,不用重新编译。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表