无法访问打开的 /arch/x86/syscalls/syscall_32.tbl

Can't access the open /arch/x86/syscalls/syscall_32.tbl

因为我在切换到内核后正在编写此命令。当我编译它时,它没有显示任何 list.Is 还有任何其他命令可以打开列表 ?

open /arch/x86/syscalls/syscall_32.tbl 

错误

从文件路径中删除第一个 / 字符(因为它应该是 relative 路径)。

检查文件

现在,使用 file 工具检查此文件是否存在:

$ file arch/x86/syscalls/syscall_32.tbl

打印文件

如果文件存在,您可以使用catless命令打印它。例如:

$ less arch/x86/syscalls/syscall_32.tbl

您也可以在编辑器中打开此文件,例如使用 vi 命令。

如果文件不存在

此文件附带 Linux 内核源代码。它是在内核 3.3 中由 this commit 添加的。所以你应该使用内核版本 3.3 或更高版本来获得这个文件。

如何使用 syscall_32.tbl 文件下载内核

kernel.org via Git (using instructions from here 下载 vanilla 主线内核源代码:

$ git clone git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
$ cd linux/

现在您应该弄清楚要使用哪个版本。这取决于您的任务(您打算如何进一步使用该内核)。如果它打算在 PC Linux 发行版上使用,我会说选择最接近您的发行版内核的版本:

$ uname -a

您可以通过发出下一个 Git 命令查看所有可用版本:

$ git tag

现在您可以切换到您选择的版本(在上面命令的输出中)。例如。你可以像这样切换到 v3.3

$ git checkout v3.3

切换到版本 3.3 或更高版本,您的内核源将有 arch/x86/syscalls/syscall_32.tbl 文件:

$ less arch/x86/syscalls/syscall_32.tbl