社区
Linux/Unix社区
帖子详情
linux的源代码中一些文件名是啥意思?比如i、sb
red-fly
2010-07-29 08:53:22
在linux的源代码中,常常有一些文件名有着固定的后辍,比如ext2_fs_i.h、ext2_fs_sb.h、adfs_fs_i.h、adfs_fs_sb.h等等,
它们后面的“i”、“sb”是什么意思?
我是linux新手,有请大家指点一二
...全文
281
16
打赏
收藏
linux的源代码中一些文件名是啥意思?比如i、sb
在linux的源代码中,常常有一些文件名有着固定的后辍,比如ext2_fs_i.h、ext2_fs_sb.h、adfs_fs_i.h、adfs_fs_sb.h等等, 它们后面的“i”、“sb”是什么意思? 我是linux新手,有请大家指点一二
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
16 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
red-fly
2010-08-03
打赏
举报
回复
没人能说明一下对static unsigned char ext2_type_by_mode[S_IFMT >> S_SHIFT]的附值的语法是什么意思的吗?
red-fly
2010-07-31
打赏
举报
回复
正是啊,我就是扣了两三天也还是编译不过,即使是编译通过,也有很多需要修改的,因为里面的很多东西都被屏蔽掉了,实际上很难正常工作,要想让它正常工作,就得有大量的修改,这工作也是很麻烦的
renjianxin520
2010-07-30
打赏
举报
回复
学习学习!
Coder_Granger
2010-07-30
打赏
举报
回复
ext2读写磁盘的代码依赖内核的其它部分,千丝万缕,全抠出来很费时间.
red-fly
2010-07-30
打赏
举报
回复
struct file_operations ext2_dir_operations 的附值,我大概明白是怎么回事了,不过还是要验证一下,就是逐一成员进行附值
另外,
to mymtom:
对static unsigned char ext2_type_by_mode[S_IFMT >> S_SHIFT]的附值,vs不支持C99,那它是什么意思?如何修改?
注:
我只所以使用vs编译,是我想从里面把ext2的磁盘读写代码拿出来用。我就是把include和ext2里的代码拿出来放到我的工程里进行编译,修改了其它的,现在主要是这些摸不着头脑,所以无从下手
mymtom
2010-07-30
打赏
举报
回复
[Quote=引用 7 楼 jszj 的回复:]
还有一些结构的附值语法,很奇怪,比如
#define S_IFLNK 0120000
...
static unsigned char ext2_type_by_mode[S_IFMT >> S_SHIFT] = {
[S_IFREG >> S_SHIFT] EXT2_FT_REG_FILE,
[S_IFDIR >> S_SHIFT] EXT2_FT_DIR,
[S_IFC……
[/Quote]
这是C99的数组和结构体初始化语法,VS不支持C99,GCC支持C99!
jiaguang3010717
2010-07-29
打赏
举报
回复
学习学习
一老六一
2010-07-29
打赏
举报
回复
受教了。。。
brookmill
2010-07-29
打赏
举报
回复
我在8楼和9楼提到的两个简单的例子, 我用gcc都可以编译通过,用VS2005就都不行。
可能这种语法是gcc特有的吧。
楼主既然看的是内核代码,就应该用gcc编译,何必要用vc。
如果一定想在vc编译,那大概就只好改成这样:
static unsigned char ext2_type_by_mode[S_IFMT >> S_SHIFT];
ext2_type_by_mode[S_IFREG >> S_SHIFT] = EXT2_FT_REG_FILE;
struct file_operations ext2_dir_operations;
ext2_dir_operations.read = generic_read_dir;
brookmill
2010-07-29
打赏
举报
回复
struct file_operations ext2_dir_operations = {
read: generic_read_dir,
readdir: ext2_readdir,
ioctl: ext2_ioctl,
fsync: ext2_sync_file,
};
楼主可以看看include/linux/fs.h里面file_operations的定义.
这个结构体有很多成员, read readdir ioctl fsync是其中几个, 都是函数指针.
这里是给这4个函数指针赋值. 从语法上来说, 相当于
struct S
{
int a;
int b;
int c;
int x;
int y;
int z;
};
struct S s = {
b: 1,
y: 5,
};
Wind_Runner
2010-07-29
打赏
举报
回复
学习学习
red-fly
2010-07-29
打赏
举报
回复
brookmill
2010-07-29
打赏
举报
回复
7楼这种写法以前没见过,好像是定义了一个数组,然后给其中几个指定的元素赋值。
我刚试了一下:
int a[5] = {
[2] 22, // 或者 [2] = 22,
[4] 44, // 或者 [4] = 44,
};
int i;
for (i=0; i<5; i++)
printf("%d\n", a[i]);
输出
0
0
22
0
44
Coder_Granger
2010-07-29
打赏
举报
回复
i = inode
sb = superblock
red-fly
2010-07-29
打赏
举报
回复
还有一些结构的附值语法,很奇怪,比如
#define S_IFLNK 0120000
...
static unsigned char ext2_type_by_mode[S_IFMT >> S_SHIFT] = {
[S_IFREG >> S_SHIFT] EXT2_FT_REG_FILE,
[S_IFDIR >> S_SHIFT] EXT2_FT_DIR,
[S_IFCHR >> S_SHIFT] EXT2_FT_CHRDEV,
[S_IFBLK >> S_SHIFT] EXT2_FT_BLKDEV,
[S_IFIFO >> S_SHIFT] EXT2_FT_FIFO,
[S_IFSOCK >> S_SHIFT] EXT2_FT_SOCK,
[S_IFLNK >> S_SHIFT] EXT2_FT_SYMLINK,
};
在vc下无法编译通过:
error C2143: syntax error : missing '}' before '['
指的是第一行“[S_IFREG >> S_SHIFT] EXT2_FT_REG_FILE,”
还有,
struct file_operations ext2_dir_operations = {
read: generic_read_dir,
readdir: ext2_readdir,
ioctl: ext2_ioctl,
fsync: ext2_sync_file,
};
:后面的是函数,前面的好像也是一个函数,同样编译不过,不知道咋来修改它
网管教程 从入门到精通软件篇.txt
INP:Oracle 3.0版或早期版本的表单
源代码
INRS:INRS远程通信声频 INS:InstallShield安装脚本;X-Internet签字文件;Ensoniq EPS字簇设备;Cell/ⅡMAC/PC抽样设备 INT:
中
间代码,当一个源程序经过语法检查后...
Linux
源代码
下载
1. 课程设计题目:下载某个版本的
linux
源代码
,生成一个定制的
linux
操作系统,完成后该系统可以用来作为启动系统使用。 2.如何做的问题? 内核版本 要编译一个最新的内核,您需要首先下载它的
源代码
在您下载...
linux
java读取文件夹下
文件名
,Java获取
Linux
上指定文件夹下所有第一级子文件夹...
} } 上面代码可能会出现线程阻塞(客户端等待服务器应答信息),参考下面方式解决 使用ch.ethz.ssh2
中
sess.execCommand方法导致线程卡死的原因分析 背景 前几天有同事反馈,说生产上的定时任务好像卡住了,没有执行...
Linux
内核
源代码
情景分析系列
Linux
内核
源代码
情景分析---第五章 文件系统 5.1 概述 构成一个操作系统最重要的就是 进程管理 与 文件系统; 有些操作系统有进程管理而没有文件系统,有些操作系统有文件系统而没有进程管理(MSDOS);...
(转)
文件名
后缀大全
说起来Windows工作界面下的
文件名
简直是随心所欲,比如:某编辑部的2000年工作计划。
文件名
即可用
中
文直接表达,而且长度最长可达256个字符,让人看起来真是一目了然。然而在Windows环境
中
,安装的软件
中
却大量存在...
Linux/Unix社区
23,121
社区成员
74,508
社区内容
发帖
与我相关
我的任务
Linux/Unix社区
Linux/Unix社区 应用程序开发区
复制链接
扫一扫
分享
社区描述
Linux/Unix社区 应用程序开发区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章