Chinaunix首页 | 论坛 | 博客
  • 博客访问: 7688850
  • 博文数量: 961
  • 博客积分: 15795
  • 博客等级: 上将
  • 技术积分: 16612
  • 用 户 组: 普通用户
  • 注册时间: 2010-08-07 14:23
文章分类

全部博文(961)

文章存档

2016年(1)

2015年(61)

2014年(41)

2013年(51)

2012年(235)

2011年(391)

2010年(181)

分类: LINUX

2011-06-12 18:54:20

  1. /*
  2.  *    文件类型测试
  3.  *    查看文件所有者,所属组
  4.  *    Lzy 2011-6-10
  5.  */

  6. #include <stdio.h>
  7. #include <stdlib.h>
  8. #include <sys/stat.h>
  9. #include <pwd.h>
  10. #include <grp.h>

  11. int main(int argc, char *argv[])
  12. {
  13.     int ret;
  14.     struct stat sbuf;            //定义文件类型结构体
  15.     struct passwd *pwd;            
  16.     struct group *grp;

  17.     if(argc != 2)                //检查命令行参数
  18.     {
  19.         printf("应输入测试文件或目录名\n");
  20.         exit(0);
  21.     }

  22.     ret = stat(argv[1], &sbuf);        //取文件状态信息
  23.     if (ret == -1)
  24.     {
  25.         perror("stat error");
  26.         exit(0);
  27.     }

  28.     /*测试文件类型*/
  29.     if(S_ISREG(sbuf.st_mode))        //测试是否是普通文件
  30.         printf(":%s\n",argv[1]);

  31.     if(S_ISDIR(sbuf.st_mode))        //测试是否是目录
  32.         printf(":%s\n",argv[1]);

  33.     /*查看文件所有者,所属组*/
  34.     pwd = getpwuid(sbuf.st_uid);    //文件所有者
  35.     if(pwd)
  36.         printf("File Ower:%s\n",pwd->pw_name);

  37.     grp = getgrgid(sbuf.st_gid);    //文件所属组
  38.     if(grp)
  39.         printf("File Group:%s\n",grp->gr_name);

  40.     return 0;
  41. }
  1. /*
  2.  *    列举目录
  3.  *    Lzy 2011-6-10
  4.  */

  5. #include <stdio.h>
  6. #include <stdlib.h>
  7. #include <dirent.h>

  8. int main(int argc, char *argv[])
  9. {
  10.     DIR *dp;
  11.     struct dirent *dirp;    

  12.     if(argc != 2)                //检查命令行参数
  13.     {
  14.         printf("应输目录名\n");
  15.         exit(0);
  16.     }
  17.     
  18.     dp = opendir(argv[1]);        //打开目录
  19.     if(dp == NULL)
  20.     {
  21.         perror("opendir fail");
  22.         exit(0);
  23.     }

  24.     while((dirp = readdir(dp)) != NULL)        //列举所有文件和目录
  25.     {
  26.         printf("%s\t",dirp->d_name);
  27.     }

  28.     closedir(dp);                //关闭目录
  29.     return 0;
  30. }
阅读(1258) | 评论(0) | 转发(4) |
0

上一篇:时间编程

下一篇:文件属性

给主人留下些什么吧!~~