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

请问Linux如何区分目录和文件?

    来源: 互联网  发布时间:2017-02-01

    本文导语:  Linux中目录和文件都是用inode结构表示的? struct inode结构中有区分的么? 和struct dentry目录项结构有关系么? 附上struct inode结构前几个变量: struct inode { struct hlist_node i_hash; struct list_head i_list; /* backing dev IO l...

Linux中目录和文件都是用inode结构表示的?
struct inode结构中有区分的么?
和struct dentry目录项结构有关系么?
附上struct inode结构前几个变量:
struct inode {
struct hlist_node i_hash;
struct list_head i_list; /* backing dev IO list */
struct list_head i_sb_list;
struct list_head i_dentry;       /*目录项链表*/??
unsigned long i_ino;
atomic_t i_count;
unsigned int i_nlink;
uid_t i_uid;
gid_t i_gid;
dev_t i_rdev;

|
通过struct stat.st_mode 来区分的吧

有一个宏,可以判断是否目录
S_ISDIR(st.st_mode)

|
这个结构体中的i_mode中有此节点所对应的结构是文件还是目录。
内核中用宏区分如下:
#define S_IFMT  00170000
#define S_IFSOCK 0140000
#define S_IFLNK  0120000
#define S_IFREG  0100000//常规文件
#define S_IFBLK  0060000
#define S_IFDIR  0040000//目录
#define S_IFCHR  0020000
#define S_IFIFO  0010000
#define S_ISUID  0004000
#define S_ISGID  0002000
#define S_ISVTX  0001000

#define S_ISLNK(m) (((m) & S_IFMT) == S_IFLNK)
#define S_ISREG(m) (((m) & S_IFMT) == S_IFREG)
#define S_ISDIR(m) (((m) & S_IFMT) == S_IFDIR)
#define S_ISCHR(m) (((m) & S_IFMT) == S_IFCHR)
#define S_ISBLK(m) (((m) & S_IFMT) == S_IFBLK)
#define S_ISFIFO(m) (((m) & S_IFMT) == S_IFIFO)
#define S_ISSOCK(m) (((m) & S_IFMT) == S_IFSOCK)

    
 
 

您可能感兴趣的文章:

  • 请问:用JDBC连接数据库时,多表查询怎样区分各表字段名?
  • 请问:在配置Qt时,很多文档都说在.profile,.login里加东西,但是我好像没有发现有这两个文件上,请问这些文件在哪个目录下啊
  • 请问那里有SYBASE的jbdb 2.0下载;jspsmartupload可以直接将文件上传到数据库,请问如何使用
  • 菜问题:请问如何根据文件中的一段内容查找文件路径和文件名称,在线等候
  • 请问有将class文件转换为可执行文件(如Windows下的exe文件)的工具吗?
  • 请问,有什么办法可以把html文件生成pdf/excel格式的文件
  • 请问Qt的工程文件,如何转成VC的工程文件??
  • 请问:proc中的头文件中能包含头文件吗?(感觉如果头文件中包含头文件的话,在链接时就会有错误啊)
  • 请问哪里能找到Curses 的头文件和库文件?
  • 请问用GCC 编译,如何生成MAP文件?就是内存的分布映像文件?
  • 我装了一个cygwin,却说找不到cybiconv-2.dll这个文件。请问这个文件在哪?
  • 如何删除前面有个-的文件,我的根目录下有个文件叫 -C,请问如何删除?
  • 请问LINUX内核下,哪些文件夹下的文件是跟LINUX的硬件平台无关的?
  • 请问如何把.po文件转成.mo文件?
  • 请问bash中如何获取一个项目目录下的执行文件的文件名?
  • 请问用JBUILDER7怎么把一个.class文件转变为.exe 文件,请具体说明一下,谢谢了!
  • 请问unix下修改文件和文件夹读写权限的问题
  • 请问如何才能将大量文件合并成一个文件并去除所有空行?
  • 请问如何使客户端浏览器一定下载某个文件,而不是打开该文件(哪怕这个文件是HTML或JPG)?
  • 请问如何动态命名重定向输出文件名,并将内容输出到该文件?
  • 请问如何从完整的路径加文件名中得到这个文件名?
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 请问:我知道路由器的telnet密码,但忘记了enable 密码,请问如何是好?
  • 请问最新的reahat9.0是基于什么核心的?2.4?2.6?请问那里能下载?
  • 请问:请问哪里有关于linux基本操作命令讲解的资料下载,最好是幻灯片格式的.
  • 请问,我试图用#admintool&图形工具命令来安装sun workshop5.0,为什么进入的却是用户管理界面?请问具体该如何在solaris下安装应用软件
  • 请问在Redhat 9里,我从登录就是图形介面,请问如何在图形介面内进入命令行方式呢,谢谢
  • 请问玩过SOLARIS的高手门,在不正常关机后,就不能启动到windows公用桌面了,只能在命令提示模式下了,请问怎么解决这个问题啊?急~!~!
  • 请问:我在redhat下装了bochs-2.2.1-1.rpm,.装了后,想设置一下,但找不到bochsrc.fda.bxrc,请问这个文件在哪个曰录下啊。
  • 请问:在GCC里的C程序里的变量的声明是不是只能在前面,而且相同类型的变量的声明只能放在一起?如果不是,请问怎么样可以解决这个问题.
  • 请问各位大虾,小弟今天开始学jsp了,这学期我们有java课,所以已经下载了jdk(好象是1.2),请问我的98环境怎么配置jsp环境呀?我的jdk可以运行.java程序,别的我就不知道了....谢谢!
  • 主机是WIN2000,我用的是LUNIX,请问是否可以共享上网? 如果可以请问如何设置? 500分答谢,龟儿食言!
  • 请问linux下GUI开发的问题!
  • 请问出现fstab文件丢失该怎么修复呀?
  • 请问这个方法如何调用?
  • 请问一个奇怪的问题!
  • 请问在网页中打开的新窗口,如何让其居中。
  • 请问我该学什么了
  • 请问安装zhcon,cxterm问题
  • 非常急! 请问daemontools 在red hat 9下的安装问题? 在线等待
  • 请问如何在一台单机上装VMware的网络访问问题?
  • (急)请问大侠,JDK怎么配置?


  • 站内导航:


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

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

    浙ICP备11055608号-3