Redirect 将/dev/input/event0直接发送到STDIN

Redirect 将/dev/input/event0直接发送到STDIN,redirect,input,ncurses,Redirect,Input,Ncurses,/dev/input/event0是usb键盘。 /dev/tty0是液晶屏 我想将STDIN重定向到/dev/input/event0,并将STDOUT重定向到/dev/tty0 这是我的尝试: [root@TR600-加上~]#./a.out>/dev/tty0 [root@TR600-加上~]#ls-l/proc//fd 总数0 0->/dev/pts/0 1->/dev/tty0 2->/dev/pts/0 重定向STDOUT就是工作但是STDIN如何改变? 我尝试使用此命令更改ST

/dev/input/event0是usb键盘。
/dev/tty0是液晶屏

我想将STDIN重定向到/dev/input/event0,并将STDOUT重定向到/dev/tty0

这是我的尝试:
[root@TR600-加上~]#./a.out>/dev/tty0
[root@TR600-加上~]#ls-l/proc//fd
总数0
0->/dev/pts/0
1->/dev/tty0
2->/dev/pts/0


重定向STDOUT就是工作但是STDIN如何改变?

我尝试使用此命令更改STDIN:但不起作用。。。

[root@TR600-Plus ~]#./a.out/dev/input/event0>&0>/dev/tty0


我的项目是关于网络课程的。我的目的是getchar()可以从USB键盘获取键值

shell命令走错了方向,例如,它应该是

./a.out < /dev/input/event0 > /dev/tty0
/a.out/dev/tty0
但是在应用程序中使用
newterm
(并直接打开设备)可能比通过shell传递流并使用
initscr
我通过pesudo终端创建新术语可以解决我的目的

任务1: ```

```

任务2: ```

```

./a.out < /dev/input/event0 > /dev/tty0
// create pesudo terminal
    fd = open("/dev/ptmx", O_RDWR | O_NOCTTY);
    grantpt(fd);
    unlockpt(fd);
    char *pts_name = ptsname(fd);
    printf("ptsname: %s\n", pts_name);

    // redirect STDIN to /dev/pts/2
    dup2(fp, STDIN_FILENO);

    while(1) {
        getchar();
    }
fpevent = open("/dev/input/event0", O_RDWR);
fppts   = open("/dev/pts/2", O_RDONLY);
// ayalyse what key press
read(fpevent,...)
scan_code = analyse(...);
// transmission ASCII code to pesudo terminal
v_key = scan_code_2_virtual_key(scan_code);
write(fppts, v_key, 1);