重定向控制台消息

Posted fanweisheng

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了重定向控制台消息相关的知识,希望对你有一定的参考价值。

Linux 在控制台记录策略上允许一些灵活性, 它允许你发送消息到一个指定的虚拟控制台 (如果你的控制台使用的是文本屏幕). 缺省地, 这个"控制台"是当前虚拟终端. 为了选择 一个不同地虚拟终端来接收消息, 你可对任何控制台设备调用 ioctl(TIOCLINUX). 下面 的程序, setconsole, 可以用来选择哪个控制台接收内核消息; 它必须由超级用户运行, 可以从 misc-progs 目录得到.

 

下面是全部程序. 应当使用一个参数来指定用以接收消息的控制台的编号.

 

int main(int argc, char **argv)

char bytes[2] = 11,0; /* 11 is the TIOCLINUX cmd number */  if (argc==2) bytes[1] = atoi(argv[1]); /* the chosen console */ else

 

fprintf(stderr, "%s: need a single arg\n",argv[0]); exit(1); if (ioctl(STDIN_FILENO, TIOCLINUX, bytes)<0) /* use stdin */

fprintf(stderr,"%s: ioctl(stdin, TIOCLINUX): %s\n", argv[0], strerror(errno));

exit(1);

exit(0);

 

setconsole 使用特殊的 ioctl 命令 TIOCLINUX, 来实现特定于 linux 的功能. 为使用 TIOCLINUX, 你传递它一个指向字节数组的指针作为参数. 数组的第一个字节是一个数, 指定需要的子命令, 下面的字节是特对于子命令的. 在 setconsole 里, 使用子命令 11, 下一个字节(存于 bytes[1])指定虚拟控制台. TIOCLINUX 的完整描述在内核源码的 drivers/char/tty_io.c 里.

 

以上是关于重定向控制台消息的主要内容,如果未能解决你的问题,请参考以下文章

grails spring security rest status 401重定向到控制器的动作以抛出自定义错误消息

在没有重定向的 Rails 控制器中发出警报

如何重定向到同一控制器中的另一个动作?

重定向进入空白页面而不重定向到路由 Laravel 5.8

异步控制器操作中发生错误时重定向用户

如何将标准输出重定向到 Windows 应用程序中的某个可见显示?