我無法打開串口在linux下啓動通訊ubuntu。我試過這個:串口在linux下不會打開ubuntu
int OpenPort(void) {
int fd;
fd = open("/dev/ttyS0", O_RDWR | O_NOCTTY | O_NDELAY);
if(fd == -1)
{
printf("Failed to open port.\n");
}
else
{
fcntl(fd, F_SETFL, 0);
printf("Opened!\n");
}
return(fd);
}
int main()
{
int x = OpenPort();
printf("%i\n", x);
exit(0);
}
我是新來的linux,發現這個代碼在線,但它不適用於我。
什麼是錯誤?嘗試將'printf(「打開端口失敗\ n」)'替換爲'printf(「打開端口失敗:%s。\ n」,strerror(errno))或'perror(「打開端口失敗。 「)'。 – loentar
當系統調用失敗時,您應該打印包含錯誤代碼的['errno'](http://pubs.opengroup.org/onlinepubs/9699919799/functions/errno.html)的值。您可以使用['strerror'](http://pubs.opengroup.org/onlinepubs/009695399/functions/strerror.html)函數獲得一個漂亮的可打印字符串。您也可以使用['perror'](http://pubs.opengroup.org/onlinepubs/9699919799/functions/perror.html)函數直接打印消息。 –
錯誤是權限被拒絕 – user2081328