用键盘和监视器代替串口的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