嵌入式 Linux下判断是否是一个目录还是一个文件的方法

原创 2013年12月02日 14:57:47
man stat;
stat.h中有判断是什么文件的宏:
S _ I S R E G ( ) 普通文件
S _ I S D I R ( ) 目录文件
S _ I S C H R ( ) 字符特殊文件
S _ I S B L K ( ) 块特殊文件
S _ I S F I F O ( ) 管道或F I F O
S _ I S L N K ( ) 符号连接( P O S I X . 1或S V R 4无此类型)
 

S _ I S S O C K ( ) 套接字(P O S I X . 1或S V R 4无此类型)

具体可以参照APUE文件目录相关章节。

下面给出一个具体的例子:

#include
#include

int main(int argc, char* argv[])
{
struct stat buf;
if(argc < 2)
{
  printf("Need Parameter");
  return -1;
}

if(lstat(argv[1], &buf) < 0)
{
  printf("lstat error for %s\r\n", argv[1]);
  return;
}

  if(S_ISDIR(buf.st_mode))
  printf("%s Is DIR\r\n", argv[1]);
  else if(S_ISREG(buf.st_mode))
  printf("%s Is FILE\r\n", argv[1]);

  return 0;
}

相关文章推荐

linux+笔记:linux下判断一个文件或者目录是否存在

工作中涉及到文件系统,有时候需要判断文件和目录是否存在,下面是一些前人的经验分享。...
  • Go_RoCo
  • Go_RoCo
  • 2017年04月19日 11:50
  • 475

MFC中 如何判断一个字符串是否是有效的目录 或盘符

MFC中如何判断一个字符串是否是合法目录或盘符呢,网上的方法倒是不少,不过大多长篇大论,探讨的太深了,问题越搞越复杂了,今天就将我的收获分享 第一种: WIN32_FIND_DATA wfd; ...
  • Link_
  • Link_
  • 2011年09月29日 16:58
  • 3896

android下判断一个应用app是否是系统rom集成的方法

import android.app.Activity; import android.content.pm.ApplicationInfo; import android.content.pm.Pa...
  • CNnumen
  • CNnumen
  • 2012年08月02日 11:23
  • 6692

HashSet 中储存先判断对象的hash值 如果一样 在调用 对象equals方法判断是否是同一个对象

HashSet 添加元素,首先比较hash值 是否有相同hash,没有则添加成功,有则继续比较equals,如果不同则添加成功,否则不添加。 测试方法,使用一个Java Bean的perso...

java判断文件是否是一个lnk快捷方式

在windows中,有一种很常见的文件——快捷方式。点击一下就可以跳转到指定的位置,可以是网址,也可以是文件目录,也可以是某个文件。 其中,跳转到网页的是url快捷方式,默认的后缀名是".url"...

linux下如何统计一个目录下的文件个数以及代码总行数的命令

linux下如何统计一个目录下的文件个数以及代码总行数的命令 知道指定后缀名的文件总个数命令: find . -name "*.cpp" | wc -l 知道一个目录下代码总行数以及单个文件...

Linux下的C++程序:统计一个目录及其内部文件总共占据的空间大小

https://my.oschina.net/Tsybius2014/blog/330628 摘要: Linux下的C++程序:统计一个目录及其内部文件总共占据的空间大小 统计一个目录...

判断一个数字是否是对称数字

  • 2017年02月27日 13:24
  • 2KB
  • 下载

linux下对一个文件设置多个组的权限(setfacl getfacl)方法--管理配置

//要设置的文件的信息: v0id6@v0id6-eof ~ $ ls testacl  -la -rw-rw-r--+ 1 v0id6 v0id6 9  3月  2 14:21 testacl /...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:嵌入式 Linux下判断是否是一个目录还是一个文件的方法
举报原因:
原因补充:

(最多只允许输入30个字)