我有一個應用程序,我打開一個串行設備(GSM調制解調器),並創建一個僞終端。我想從串口設備讀取數據並過濾數據並通過僞終端發送,這樣其他進程就可以讀取它,就像它是一個簡單的「原始」串行線一樣。
ptFd
- 僞終端文件描述符
devFd
-僞終端和串行設備之間的奇怪字符替換
我使用的文件描述符串行設備posix_openpt(O_RDWR | O_NOCTTY)
,grantpt(ptFd)
,unlockpt(ptFd)
的僞終端和大量的串行線路自定義設置的。對於第一次嘗試,我不會在這裏發佈,但如果它能幫助任何人解決這個問題,我會做。 我的問題是這樣的:
閱讀devFd:
056405c0020001009e59
閱讀PTFD:
5e45645e45c05e425e405e415e409e59
閱讀devFd:
056405c0020001009e59
閱讀PTFD:
5e45645e45c05e425e405e415e409e59
我寫的我從僞終端上的設備獲得的字節和:
個05變爲5e45
00變爲5e40
01變爲5e41
02變爲5e42
但是所有字節不以十六進制從0開始(> = 16小數)被轉移就好了。
首先......當我在一個僞終端上編寫程序並在同一個進程中讀取它時,它不應該反映我剛剛寫到的那些字節,對吧?
我不熟悉這些終端,但我想象我打開一個終端,獲取ptsname函數的奴隸的名字。從另一個進程中,我可以打開該名稱(如/ dev/pts/3),從這一點起,它可以用作'流'。
很可能我錯了,但請您給我一個簡短的說明?提前致謝。
'cfmakeraw'函數幫助我實現了我的目標,但是你的回答讓我感謝這個:)謝謝 –