当前位置:  技术问答>linux和unix

如何用程序区分目录和文件

    来源: 互联网  发布时间:2015-10-14

    本文导语:  如何用程序区分目录和文件 | int stat(const char *file_name,struct stat *buf);  int fstat(int filedes,struct stat *buf); struct stat {  dev_t st_dev; /* 设备 */  ino_t st_ino; /* 节点 */  mode_t st_mode; /* 模...

如何用程序区分目录和文件

|
int stat(const char *file_name,struct stat *buf); 
int fstat(int filedes,struct stat *buf);

struct stat { 
dev_t st_dev; /* 设备 */ 
ino_t st_ino; /* 节点 */ 
mode_t st_mode; /* 模式 */ 
nlink_t st_nlink; /* 硬连接 */ 
uid_t st_uid; /* 用户ID */ 
gid_t st_gid; /* 组ID */ 
dev_t st_rdev; /* 设备类型 */ 
off_t st_off; /* 文件字节数 */ 
unsigned long st_blksize; /* 块大小 */ 
unsigned long st_blocks; /* 块数 */ 
time_t st_atime; /* 最后一次访问时间 */ 
time_t st_mtime; /* 最后一次修改时间 */ 
time_t st_ctime; /* 最后一次改变时间(指属性) */ 
};

stat用来判断没有打开的文件,fstat用来判断打开的文件.通过着属性st_mode我们可以判断给定的文件是一个普通文件还是一个目录,连接等等.可以使用下面几个宏来判断. 
S_ISLNK(st_mode):是否是一个连接.S_ISREG是否是一个常规文件.S_ISDIR是否是一个目录S_ISCHR是否是一个字符设备.S_ISBLK是否是一个块设备S_ISFIFO是否 是一个FIFO文件.S_ISSOCK是否是一个SOCKET文件

例:
struct stat statbuf; 

if(stat(filename,&statbuf)==-1) 

  //错误处理


if(S_ISDIR(statbuf.st_mode))
{
//目录
}
if(S_ISREG(statbuf.st_mode))
{
//文件
}

|
stat 

S_ISDIR

|
楼上正解

|
楼上正解:使用stat函数

|
使用stat函数
然后使用S_ISDIR宏

详细请查看stat的使用手册

欢迎访问我的个人网站 www.linuxc.net

|
用stat()

    
 
 

您可能感兴趣的文章:

  • 运行了2个java程序,怎样区分两个程序?
  • 用程序区分到底是汉字还是ASCII?
  • 傻傻得问,如果两个设备共享一个中断线,中断响应程序怎么区分?
  • C程序如何区分当前有效网卡是eth0,还是eth1?
  • 如何实现插上多个USB存储设备,程序区分他们的一一对应关系?
  • 为什么J2SE编译和运行程序时命令行区分大小写?
  • http协议介绍,文件上传分析及程序举例
  • 请教高手一个简单问题:给定一个文件名,如何去查找该文件正在被几个程序使用,并怎么样才可以切断这个文件与正在打开该文件的程序之间的
  • Ubuntu程序开机自动启动设置(服务和自动运行配置文件)的几种方法
  • 在程序建立的文件夹里,程序自己无法创建文件?
  • Linux下c/c++开发之程序崩溃(Segment fault)时内核转储文件(core dump)生成设置方法
  • 我的程序是用c写的gtk+程序,有个函数的参数要传给它图片的文件名,但是图片和原程序不在同一目录下怎么办?怎么在程序里指定文件的路径
  • 求几个完整的Java程序,什么内容的程序都行,要包含工程文件和全部源文件,主要用于学习,发者就给分。
  • 用jbuilder开发的程序,其中用到了xylayout,将应用程序做成了jar文件,运行jar文件时,提示错误。请大家多帮忙
  • .so文件被程序加载后,不停止程序,可否更新.so文件?
  • 请问用JB7编译过的JAVA程序,哪一个文件是可执行程序啊?我怎么找不到啊?不是CLASS文件吧。双击他直接把JB7打开了。
  • Linux下的程序是在内存中运行的吗?为什么在程序运行的时候可以删除程序文件?
  • 执行一程序,向一个文本文件中写入数据,报文件大小超出限制错误!
  • 请问怎么在C程序中得到该可执行程序的文件名???
  • 怎样才能得到Redhat8.0支持的所有打印机的驱动程序列表文件,我程序里要用。先谢过
  • 不让用户选择文件,程序指定本地文件,Java可以实现上传到服务器吗?
  • 在JSP文件中如何用程序指定,其它Frame载入文件???
  • 想找一个java 做的文件下载程序(最好用URL类吧),那位有这方面的程序或代码?100分必送
  • 请教:在程序中创建文件夹,应该用什么函数?怎么判断文件夹存不存在呢?
  • Linux下写服务程序,程序可以使用配置文件动态链接库吗?
  • ftp连接下无法删除程序生成的文件(cache文件)
  • 我自己写了个程序 程序依赖很多的动态联接库 如何发布这些库文件
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 我在SRC目录下写好的源程序,我怎样能写个脚本把写好的源程序放在BIN下呢?另外我想把该程序的输出结果(生成了几个文件),生成到out目录下,
  • 程序目录与文件目录的问题
  • 如何在程序内获取程序所在的目录?
  • 如何编写程序枚举一个目录下的所有文件和一级子目录?
  • C#取得Web程序和非Web程序的根目录的N种取法总结
  • 目录列表程序 pdirl
  • 用perl程序 如何取得上级目录的路径
  • makefile搜索目录下的程序的问题
  • 系统默认的cron程序会在哪个目录?
  • linux下怎样让自己写的程序在任何目录都可以用
  • 实现一个简单的目录比较程序
  • 怎样得到当前目录(不是在java程序中得到)
  • 音乐目录程序 cdcat
  • 在Solaris上使用Motif开发,有什么函数可以得到当前程序运行的目录?
  • 如何取得程序运行时的当前目录?
  • JAVA程序为放于BIN目录下时,如何编译?
  • 在程序中如何获得某个硬盘或者目录的剩余空间?
  • JAVA程序为放于BIN目录下时,如何编译? iis7站长之家
  • C# 获取(非)Web程序根目录的可用方法
  • 请问下如何查找某个程序的安装目录
  • 重装服务器后IIS网站错误(应用程序中的服务器错误)
  • 为什么我在java程序里启动的一个程序在java程序关闭后,该程序的所有进程都关掉了
  • windows server2008上PowerBuilder程序系统错误解决方法
  • Linux 编程怎么样在程序开启一个程序,和关闭一个程序?
  • c语言判断某一年是否为闰年的各种实现程序代码
  • 请问从一个java程序中如何调用另一java程序,并控制可以其状态(最小化、最大化、结束程序),还有怎样知道那个被调用的程序结束。
  • 程序员的八种级别,你属于哪一级?
  • 为什么linux下的C++程序这么少见? 请问那里有linux下的C++程序?什么类型的程序都可以.
  • Linux下指定运行时加载动态库路径及shell下执行程序默认路径
  • 我写了个linux下的网络程序,程序在多个电脑间通信,但是我没有多个电脑,怎么调试这样的程序啊?
  • 在docker容器中通过apt-get安装新的程序


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3