加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > Linux > 正文

liunx重定向控制台消息

发布时间:2020-12-13 23:13:52 所属栏目:Linux 来源:网络整理
导读:Linux 在控制台记录策略上允许一些灵活性,它允许你发送消息到一个指定的虚拟控制台 (如果你的控制台使用的是文本屏幕). 缺省地,这个"控制台"是当前虚拟终端. 为了选择 一个不同地虚拟终端来接收消息,你可对任何控制台设备调用 ioctl(TIOCLINUX). 下面 的程序

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 argn",argv[0]); exit(1); } if (ioctl(STDIN_FILENO,TIOCLINUX,bytes)<0) { /* use stdin */

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

exit(1);

}

exit(0);

}

?

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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读