K tomu můžete použít pty („pseudo-dálnopis“, kde sériový port je „skutečný dálnopis“). Z jednoho konce otevřete /dev/ptyp5
a poté připojte svůj program k /dev/ttyp5
; ttyp5
bude fungovat stejně jako sériový port, ale vše, co dělá, bude odesílat/přijímat přes /dev/ptyp5.
Pokud to opravdu potřebujete, abyste mohli komunikovat se souborem s názvem /dev/ttys2
, pak jednoduše přesuňte svůj starý /dev/ttys2
z cesty a vytvořte symbolický odkaz z ptyp5
na ttys2
.
Samozřejmě můžete použít jiné číslo než ptyp5
. Možná si vyberte ten s vysokým číslem, abyste se vyhnuli duplicitám, protože všechny vaše přihlašovací terminály budou také používat ptys.
Wikipedia má více o ptys:http://en.wikipedia.org/wiki/Pseudo_terminal
Použijte k tomu socat:
Například:
socat PTY,link=/dev/ttyS10 PTY,link=/dev/ttyS11
Doplnění odpovědi @slonik.
Socat můžete otestovat pro vytvoření virtuálního sériového portu následujícím postupem (testováno na Ubuntu 12.04):
Otevřete terminál (říkejme mu Terminál 0) a spusťte jej:
socat -d -d pty,raw,echo=0 pty,raw,echo=0
Výše uvedený kód vrací:
2013/11/01 13:47:27 socat[2506] N PTY is /dev/pts/2
2013/11/01 13:47:27 socat[2506] N PTY is /dev/pts/3
2013/11/01 13:47:27 socat[2506] N starting data transfer loop with FDs [3,3] and [5,5]
Otevřete jiný terminál a napište (Terminál 1):
cat < /dev/pts/2
název portu tohoto příkazu lze změnit podle počítače. to závisí na předchozím výstupu.
2013/11/01 13:47:27 socat[2506] N PTY is /dev/pts/**2**
2013/11/01 13:47:27 socat[2506] N PTY is /dev/pts/**3**
2013/11/01 13:47:27 socat[2506] N starting data transfer loop with FDs
měli byste použít číslo dostupné ve zvýrazněné oblasti.
Otevřete jiný terminál a napište (Terminál 2):
echo "Test" > /dev/pts/3
Nyní se vraťte k Terminálu 1 a uvidíte řetězec "Test".