1
我在編寫程序以允許使用串行接口的標準應用程序,通過以太網進行通信。如何在posix_openpt()中定義名稱
我使用posix_openpt創建新的串行接口。它的工作完美,但每個電話posix_openpt
,串行接口有不同的名稱(如"/dev/pts/4"
或"/dev/pts/5"
...)。
我需要指定名稱(數字),或使用像udev規則來創建符號鏈接來糾正pty。
有些想法?
感謝
我在編寫程序以允許使用串行接口的標準應用程序,通過以太網進行通信。如何在posix_openpt()中定義名稱
我使用posix_openpt創建新的串行接口。它的工作完美,但每個電話posix_openpt
,串行接口有不同的名稱(如"/dev/pts/4"
或"/dev/pts/5"
...)。
我需要指定名稱(數字),或使用像udev規則來創建符號鏈接來糾正pty。
有些想法?
感謝
我用符號鏈接:
fd = posix_openpt(O_RDWR);
if (fd < 0){
return -1;
}
if ((slavename = ptsname(fd)) == NULL) {
Close();
return -1;
}
rc = grantpt(fd);
if (rc != 0){
Close();
return -1;
}
rc = unlockpt(fd);
if (rc != 0){
Close();
return -1;
}
fcntl(fd, F_SETFL, FNDELAY);
unlink(SER_PORT_NAME);
if(symlink(slavename,SER_PORT_NAME)){
}
.....
我認爲你需要解釋一下。爲什麼你需要指定名稱?你不能使用生成的? –
我有使用串口的應用程序通信(並在配置文件中指定了端口名稱)。這個應用程序在嵌入式系統上自動啓動。現在我需要通過特殊的協議將串口重定向到以太網。我認爲最好的方法是使用pty。但我必須確定,這個應用使用corect pty(corect串行端口)。 – pou
您是否熟悉tha [XY問題](http://xyproblem.info)。我之前完成了這個。沒有ptys需要,你正在採取錯誤的解決方案。你想將串口重定向到tcp?所以你想發送到你的* ttyS?*的命令到TCP套接字?請注意,您要求的是完全不同的事情。 –