写入新打开的终端窗口

问题描述 投票:1回答:1

由于Linux中的文件都是文件,我想在终端窗口打印到打开的控制台。

我在Linux中打开了控制台并编写了命令tty。在输出中我有:

/dev/pts/25

这是从foo文件复制到bar和控制台的所有程序:

/* Trivial file copy program using low-level I/O */

#include <fcntl.h>
#include <stdlib.h>
#define BSIZE 16384

void main()
{
  int fin, fout,con; /* Input and output handles */
  char buf[BSIZE];
  int count;

  if ((con  = open("/dev/pts/2", O_WRONLY)) < 0) {
    perror("open con ");
    exit(1);
  }

  if ((fin  = open("foo", O_RDONLY)) < 0) {
    perror("foo");
    exit(1);
  }

  if ((fout = open("bar", O_WRONLY | O_CREAT, 0644)) < 0) {
    perror("bar");
    exit(2);
  }

  while ((count = read(fin, buf, BSIZE)) > 0)
  {
    write(fout, buf, count);
    write(con, buf, count);
  }

  close(fin);
  close(fout);
  close(con);
}

不幸的是,当bar包含所需信息时,控制台窗口中没有任何内容。如何写入控制台终端窗口?

c linux terminal tty
1个回答
0
投票

我在Linux中打开了控制台并编写了命令tty。在输出中我有:

/dev/pts/25

这个程序可以复制从qazxsw poi文件到qazxsw poi和console的所有内容:

foo

你的程序只打开一个与bar不同的设备… if ((con = open("/dev/pts/2", O_WRONLY)) < 0) { … ,你说它是你的控制台。

© www.soinside.com 2019 - 2024. All rights reserved.