linux c程序调用重启,linux下c程序调用reboot函数实现直接重启

#include int reboot(int cmd);

DESCRIPTION

The  reboot()  call  reboots the system, or enables/disables the reboot

keystroke (abbreviated CAD, since the default  is  Ctrl-Alt-Delete;  it

can be changed using loadkeys(1)).

This   system   call  will  fail  (with  EINVAL)  unless  magic  equals

LINUX_REBOOT_MAGIC1   (that   is,   0xfee1dead)   and   magic2   equals

LINUX_REBOOT_MAGIC2  (that  is, 672274793).  However, since 2.1.17 also

LINUX_REBOOT_MAGIC2A  (that  is,  85072278)  and  since   2.1.97   also

LINUX_REBOOT_MAGIC2B   (that  is,  369367448)  and  since  2.5.71  also

LINUX_REBOOT_MAGIC2C (that is, 537993216) are permitted  as  value  for

magic2.   (The  hexadecimal  values of these constants are meaningful.)

The cmd argument can have the following values:

LINUX_REBOOT_CMD_RESTART

(RB_AUTOBOOT, 0x1234567).  The message "Restarting  system."  is

printed, and a default restart is performed immediately.  If not

preceded by a sync(2), data will be lost.

LINUX_REBOOT_CMD_HALT

(RB_HALT_SYSTEM, 0xcdef0123; since 1.1.76).  The message "System

halted." is printed, and the system is halted.  Control is given

to the ROM monitor, if there is  one.   If  not  preceded  by  a

sync(2), data will be lost.

LINUX_REBOOT_CMD_POWER_OFF

(0x4321fedc;  since  2.1.30).   The  message  "Power  down."  is

printed, the system is stopped, and all power  is  removed  from

the  system,  if  possible.   If not preceded by a sync(2), data

will be lost.

LINUX_REBOOT_CMD_RESTART2

(0xa1b2c3d4; since 2.1.30).  The message "Restarting system with

command  '%s'"  is  printed,  and  a  restart (using the command

string given in arg) is performed immediately.  If not  preceded

by a sync(2), data will be lost.

LINUX_REBOOT_CMD_CAD_ON

(RB_ENABLE_CAD,  0x89abcdef).   CAD is enabled.  This means that

the CAD keystroke will immediately cause the  action  associated

with LINUX_REBOOT_CMD_RESTART.

LINUX_REBOOT_CMD_CAD_OFF

(RB_DISABLE_CAD,  0).  CAD is disabled.  This means that the CAD

keystroke will cause a SIGINT signal to be sent to init (process

1),  whereupon  this  process  may  decide  upon a proper action

(maybe: kill all processes, sync, reboot).

Only the superuser may call reboot().

The precise effect of the above actions depends  on  the  architecture.

For the i386 architecture, the additional argument does not do anything

at present (2.1.122), but the type of reboot can be determined by  ker‐

nel  command-line  arguments  ("reboot=...") to be either warm or cold,

and either hard or through the BIOS.

RETURN VALUE

For the values of cmd that stop or restart  the  system,  a  successful

call  to  reboot()  does not return.  For the other cmd values, zero is

returned on success.  In all cases, -1  is  returned  on  failure,  and

errno is set appropriately.

ERRORS

EFAULT Problem      with      getting      userspace     data     under

LINUX_REBOOT_CMD_RESTART2.

EINVAL Bad magic numbers or cmd.

EPERM  The calling process has insufficient privilege to call reboot();

the CAP_SYS_BOOT capability is required.

CONFORMING TO

reboot() is Linux-specific, and should not be used in programs intended

to be portable.

SEE ALSO

sync(2),   bootparam(7),   capabilities(7),   ctrlaltdel(8),   halt(8),

reboot(8)

COLOPHON

This  page  is  part of release 3.01 of the Linux man-pages project.  A

description of the project, and information about reporting  bugs,  can

be found at

Linux                             2008-02-11                         REBOOT(2)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值