gpt4 book ai didi

c - 尝试理解定义文件类型的宏

转载 作者:行者123 更新时间:2023-11-30 21:29:20 25 4
gpt4 key购买 nike

所以我一直在尝试在 gdb 中调试程序,为了了解我需要分析它的某个部分。

if (!S_ISREG(st->st_mode))

if (!(st->st_mode & S_IXUSR))

在上面的if中,S_ISREG和S_IXUSR是我不理解的宏。当我尝试更多地研究这些宏时,我发现了这些其他宏:

/* File types.  */
#define __S_IFDIR 0040000 /* Directory. */
#define __S_IFCHR 0020000 /* Character device. */
#define __S_IFBLK 0060000 /* Block device. */
#define __S_IFREG 0100000 /* Regular file. */
#define __S_IFIFO 0010000 /* FIFO. */
#define __S_IFLNK 0120000 /* Symbolic link. */`enter code here`
#define __S_IFSOCK 0140000 /* Socket. */

我想知道的是宏旁边的数字是什么意思?那么这些以“__”开头的宏呢?我想我不久前听说这些是子宏或其他东西。如果有人能解释这两个问题那就太棒了!

最佳答案

你看,无论谁创建了这个文件系统,只需要一些不同的值来代表不同类型的文件,并且一个值代表一种类型,没有具体原因为什么 0040000 代表目录,如果你是文件系统的作者,你可以指定任何你喜欢的值来代表目录,所以没有为什么,只要按照注释就知道了。

关于c - 尝试理解定义文件类型的宏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32491522/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com