C getsysinfo(GSI_BOOTEDFILE,…)重新宿主

C getsysinfo(GSI_BOOTEDFILE,…)重新宿主,c,linux,kernel,boot,rehosting,C,Linux,Kernel,Boot,Rehosting,我正在将一个程序从tru64迁移到linux。我在C中找不到getsysinfo(GSI_BOOTEDFILE,…)的替代品 如何获取当前正在运行的内核在C中的SUSE11下从中启动的文件名? 我没有办法了。 谢谢没有通用的方法可以做到这一点,而且也不总是可能的——例如,如果机器是PXE引导的,或者是嵌入式系统,那么内核可能根本不存在于磁盘上。在x86系统上,您可以通过尝试解析lilo/grub配置进行猜测,但这不会给出可靠的结果。没有通用的方法可以做到这一点,而且并不总是可能的——例如,如果机

我正在将一个程序从tru64迁移到linux。我在C中找不到getsysinfo(GSI_BOOTEDFILE,…)的替代品

如何获取当前正在运行的内核在C中的SUSE11下从中启动的文件名? 我没有办法了。
谢谢

没有通用的方法可以做到这一点,而且也不总是可能的——例如,如果机器是PXE引导的,或者是嵌入式系统,那么内核可能根本不存在于磁盘上。在x86系统上,您可以通过尝试解析lilo/grub配置进行猜测,但这不会给出可靠的结果。

没有通用的方法可以做到这一点,而且并不总是可能的——例如,如果机器是PXE引导的,或者如果它是嵌入式系统,那么内核可能根本不存在于磁盘上。在x86系统上,您可以通过尝试解析lilo/grub配置进行猜测,但这不会给出可靠的结果。

/proc/version
/proc/cmdline
,它们将告诉您运行内核的版本信息以及在其命令行上传递给它的选项


在这两个文件之间,您应该能够确定哪个内核正在运行,除非出于某种原因,您有几个相同版本的内核文件。

/proc/version
/proc/cmdline
,它们将告诉您运行内核的版本信息以及在其命令行上传递给它的选项


在这两个文件之间,您应该能够确定哪个内核正在运行,除非出于某种原因,您有多个相同版本的内核文件。

如果幸运的话,您甚至可能会发现
/proc/cmdline
包含一个字符串,其形式为
BOOT_IMAGE=/BOOT/vmlinuz-2.6.32-5-686
标识启动文件名。如果您幸运,您甚至可能会发现
/proc/cmdline
包含一个字符串,其形式为
BOOT_IMAGE=/BOOT/vmlinuz-2.6.32-5-686
,标识启动文件名。