2013-10-26 25 views

回答

0

我想知道第二個參數char *cmd的用法是什麼。
有人可以解釋一下嗎?

這被稱爲通過machine_restart(),它又被稱爲kernel_restart()。由於每個內核文檔,

@cmd:指向緩衝區包含要執行的命令重啓或NULL%

你可以通過一個命令reboot這是你所看到的。大多數情況下,ARM鉤子只是忽略它。您可以檢查它是否爲NULL或者也可以忽略它。

man 2 reboot

上述行動的精確效果取決於架構。對於i386體系結構,額外的參數目前沒有做任何事情(2.1.122),但重啓的類型可以由內核命令行參數(「rebo​​ot = ...」)確定爲溫暖或冷的,並且無論是硬盤還是通過BIOS。

您可以自由地忽略它,但如果您需要用戶空間來表示某些特殊信號,則可以使用它。幾乎總是,你會得到cmd == NULL

注:該命令總是失敗返回;它不應該返回;-)請參閱define LINUX_REBOOT_CMD_RESTART2以瞭解cmd是否爲非NULL的情況。