如何在Linux中使用c扫描整个磁盘?
在我的应用程序中,我需要完整的磁盘扫描来递归地查找elf文件和可执行文件。如何在LinuxC中解决这个问题如何在Linux中使用c扫描整个磁盘?,c,linux,filesystems,C,Linux,Filesystems,在我的应用程序中,我需要完整的磁盘扫描来递归地查找elf文件和可执行文件。如何在LinuxC中解决这个问题 从文件系统的根开始 使用opendir()readdir()closedir()扫描目录 对于每个条目: 通过文件*“magic”检测elf文件 通过(struct dirent*)->d_类型检测子目录项 当遇到子目录时,递归到上面的2 *ELF文件魔法(文件偏移量0): 从文件系统的根开始 使用opendir()readdir()closedir()扫描目录 对于每个条目: 通过文件
如果不能使用标准的
find
程序,请使用POSIX函数(或者可能是
函数)遍历层次结构并编写合适的访问者函数
ELF文件的前4个字节为:
0x7F 0x45 0x4C 0x46
DEL E L F
以下内容是特定于平台和版本的
例如,文件
报告:
ELF 64-bit LSB relocatable, x86-64, version 1 (SYSV), not stripped
十六进制的前16个字节的输出为:
0x0000: 7F 45 4C 46 02 01 01 00 00 00 00 00 00 00 00 00 .ELF............
这与his中在前4个字节后显示的输出略有不同。如果无法使用标准的
查找程序,请使用POSIX函数(或可能的
函数)遍历层次结构并编写合适的访问者函数
ELF文件的前4个字节为:
0x7F 0x45 0x4C 0x46
DEL E L F
以下内容是特定于平台和版本的
例如,文件
报告:
ELF 64-bit LSB relocatable, x86-64, version 1 (SYSV), not stripped
十六进制的前16个字节的输出为:
0x0000: 7F 45 4C 46 02 01 01 00 00 00 00 00 00 00 00 00 .ELF............
这与his中在前4个字节后显示的输出略有不同。如果无法使用标准的查找程序,请使用POSIX函数(或可能的
函数)遍历层次结构并编写合适的访问者函数
ELF文件的前4个字节为:
0x7F 0x45 0x4C 0x46
DEL E L F
以下内容是特定于平台和版本的
例如,文件
报告:
ELF 64-bit LSB relocatable, x86-64, version 1 (SYSV), not stripped
十六进制的前16个字节的输出为:
0x0000: 7F 45 4C 46 02 01 01 00 00 00 00 00 00 00 00 00 .ELF............
这与his中在前4个字节后显示的输出略有不同。如果无法使用标准的查找程序,请使用POSIX函数(或可能的
函数)遍历层次结构并编写合适的访问者函数
ELF文件的前4个字节为:
0x7F 0x45 0x4C 0x46
DEL E L F
以下内容是特定于平台和版本的
例如,文件
报告:
ELF 64-bit LSB relocatable, x86-64, version 1 (SYSV), not stripped
十六进制的前16个字节的输出为:
0x0000: 7F 45 4C 46 02 01 01 00 00 00 00 00 00 00 00 00 .ELF............
这与his中在前4个字节后显示的输出略有不同。看这里看这里看这里看这里你是否愿意在生成ELF字符串的对象或可执行文件之一上运行文件
,以与在64位Intel(x86_64)ELF上生成的字符串进行比较。前4个字节是幻数;前16个字节的剩余12个字节编码32位vs 64位、LSB vs MSB(endianness)、版本、类型等。我相信您的信息编码32位(01)MSB(big endian)、版本1(01)、SYSV(00)。其他信息将在标题后面提供。是否要在生成ELF字符串的对象或可执行文件之一上运行文件
,以与在64位Intel(x86_64)ELF上生成的字符串进行比较。前4个字节是幻数;前16个字节的剩余12个字节编码32位vs 64位、LSB vs MSB(endianness)、版本、类型等。我相信您的信息编码32位(01)MSB(big endian)、版本1(01)、SYSV(00)。其他信息将在标题后面提供。是否要在生成ELF字符串的对象或可执行文件之一上运行文件
,以与在64位Intel(x86_64)ELF上生成的字符串进行比较。前4个字节是幻数;前16个字节的剩余12个字节编码32位vs 64位、LSB vs MSB(endianness)、版本、类型等。我相信您的信息编码32位(01)MSB(big endian)、版本1(01)、SYSV(00)。其他信息将在标题后面提供。是否要在生成ELF字符串的对象或可执行文件之一上运行文件
,以与在64位Intel(x86_64)ELF上生成的字符串进行比较。前4个字节是幻数;前16个字节的剩余12个字节编码32位vs 64位、LSB vs MSB(endianness)、版本、类型等。我相信您的信息编码32位(01)MSB(big endian)、版本1(01)、SYSV(00)。其他信息将在后面的标题中显示。谢谢。ftw()非常合适。谢谢。ftw()非常合适。谢谢。ftw()非常合适。谢谢。ftw()非常合适。