用键盘和监视器代替串口的C串口程序/dev/ttyUSBX

用键盘和监视器代替串口的C串口程序/dev/ttyUSBX,c,linux,serial-port,tty,C,Linux,Serial Port,Tty,我正试图编写一个程序,接受键盘输入,并将输出放在屏幕上,但就像它是一个串行端口一样。我甚至不确定这是否可行。我目前使用的串行端口代码为: int fd; char *portname; char buf[255]; struct termios tty; portname = "/dev/ttyUSB0"; // opening serial port fd = open(portname, O_RDWR | O_NOCTYY | O_SYNC ); //writing to serial

我正试图编写一个程序,接受键盘输入,并将输出放在屏幕上,但就像它是一个串行端口一样。我甚至不确定这是否可行。我目前使用的串行端口代码为:

int fd;
char *portname;
char buf[255];
struct termios tty;

portname = "/dev/ttyUSB0";

// opening serial port
fd = open(portname, O_RDWR | O_NOCTYY | O_SYNC );

//writing to serial port
write (fd, "hello!\n", 7);

//Reading from serial port
read (fd, buf, 255)
那么,有没有可能不将端口名设置为/dev/ttyUSB0,而是将其设置为其他内容(例如/dev/stdin?),然后获得完全相同的UART功能,但将键盘设置为输入,将屏幕设置为输出

谢谢你的帮助

UNIX/Linux设置您的键盘和屏幕所连接的终端(无论是与真实硬件终端、虚拟控制台还是图形终端的串行线路)已经打开的stdin(fd 0)、stdout(fd 1)和stderr(fd 2)。它可用于termio控制,作为一种特殊的设备文件名,termios例程在已经打开的fild描述符上运行,允许获取终端驱动程序属性,关闭规范模式,然后在程序结束时重置值

在POSIX中,一切都是一个文件,无论是串行线、磁盘、终端仿真器都被抽象出来,由操作系统内核执行I/O