unit testing的“回声”设备

我正在编写一些testing硬件通信端口的程序的CPPunittesting(是的,我正在为testing应用程序编写unit testing;-))。 我正在testing的一个类基本上是设备的文件描述符的一个包装; 我在文件描述符上进行read()write()调用。 在Linux上有没有设备文件/驱动程序,如果你write() ,当你从它read() ,你会读回你写的(如FIFO队列设备)? 如果我有这个设备文件,那么在我的包装器中放置实际的设备文件将非常简单,并且可以很容易地模拟真实硬件上可能发生的“环回”场景。


基本上我正在寻找的是一种假设的"/dev/echo"设备。

例如:该设备的行为如下:

 open("/dev/echo", O_RDRW); write(fdEcho, 123, sizeof(int)); write(fdEcho, 456, sizeof(int)); write(fdEcho, 789, sizeof(int)); read(fdEcho, iData, sizeof(int); // returns 123 read(fdEcho, iData2, sizeof(int); // returns 456 read(fdEcho, iData3, sizeof(int); // returns 789 

为什么不在文件系统中使用UNIX管道?

 mkfifo /dev/test echo test > /dev/test 

在第二个终端上:

 cat /dev/test 

然后第一个将解锁,第二个将显示文本!

你可以做一个

 mknod /dev/echo p 

第一个参数是文件名(可以是任何文件名,不必在/dev ),第二个参数是“pipe”的p

参考: http : //www.unix.com/unix-dummies-questions-answers/22205-unix-pipe.html

你也可以看看pipe() C函数: http : //www.manpagez.com/man/2/pipe/