c - 在 C 程序中包含 ext4.h
问题描述
我正在尝试创建一个可以读取 ext4 文件系统的小程序,为此我需要使用ext4.h
文件中定义的所有结构。
问题是,该文件包含一组内核头文件,例如
#include <linux/blkdev.h>
#include <linux/magic.h>
#include <linux/jbd2.h>
#include <linux/quota.h>
#include <linux/rwsem.h>
#include <linux/rbtree.h>
#include <linux/seqlock.h>
#include <linux/mutex.h>
#include <linux/timer.h>
#include <linux/version.h>
... and more
我使用以下方法安装了内核头文件:
$ apt search linux-headers-$(uname -r)
所以现在我把它们/usr/src/linux-headers-5.4.../include
放进去,我尝试用它来编译我的程序,-I /path/to/kernel-headers
但现在似乎这些头文件中包含一些头文件,它无法找到,比如asm/current.h
我的文件系统中的哪个是asm-generic/current.h
做过这样的事情的人可以帮助我吗?
解决方案
我建议你看看e2fsprogs。这是用于操作 ext2/3/4 文件系统的用户空间工具集,它包含您可以适应的文件系统的用户空间实现。
推荐阅读
- javascript - 谁需要条件(三元)运算符?
- php - 如何将 mysql 转储添加到 laravel 项目
- symfony - Symfony 5 - 访问嵌套对象
- python - Python Azure SDK:从应用配置服务获取 Key Vault 引用值
- javascript - 使用正则表达式从文本抓取中解析文本
- node.js - 具有类型声明的节点模块导入函数
- flutter - 当我滚动页面的内容在搜索栏和文本小部件后面
- html - 用于重复重复组件的动态 z-index
- java - Azure Functions:Java 如何接受 application/xml 的内容类型然后将其转换为 POJO
- powershell - 外壳 | 加快在 Powershell 作业中运行 Get-ADUser