Chinaunix首页 | 论坛 | 博客
  • 博客访问: 7540
  • 博文数量: 14
  • 博客积分: 250
  • 博客等级: 二等列兵
  • 技术积分: 95
  • 用 户 组: 普通用户
  • 注册时间: 2011-01-13 01:08
文章分类
文章存档

2011年(14)

我的朋友
最近访客

分类: IT职场

2011-01-13 03:12:52

  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <stdint.h>
  4. #include <sys/types.h>
  5. #include <sys/stat.h>
  6. static int ftype(const char *path)
  7. {
  8.         struct stat statres;
  9.         if(lstat(path, &statres) < 0)
  10.         {
  11.                 return -1;
  12.         }
  13.         switch(statres.st_mode & S_IFMT)
  14.         {
  15.                 case S_IFSOCK:
  16.                         return 's';
  17.                         break;
  18.                 case S_IFLNK:
  19.                         return 'l';
  20.                         break;
  21.                 case S_IFREG:
  22.                         return '-';
  23.                         break;
  24.                 case S_IFBLK:
  25.                         return 'b';
  26.                         break;
  27.                 case S_IFDIR:
  28.                         return 'd';
  29.                         break;
  30.                 case S_IFCHR:
  31.                         return 'c';
  32.                         break;
  33.                 case S_IFIFO:
  34.                         return 'p';
  35.                         break;
  36.                 default:
  37.                         return '?';
  38.                         break;
  39.         }
  40.         return '?';
  41. }
  42. int main(int argc, char **argv)
  43. {
  44.         if(argc < 2)
  45.         {
  46.                 fprintf(stderr, "Usage...\n");
  47.                 exit(1);
  48.         }
  49.         printf("%c\n", ftype(argv[1]));
  50.         exit(0);
  51. }
  52. ~
  53. ~
  54. ~
阅读(208) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~