2014-09-19 145 views
0

對於任務,我需要使用ioctl,TCGETS和TCSETS。我不能使用tcgetattr和tcsetattr。C Linux ioctl TCGETS和TCSETS errno 25

這裏是我到目前爲止的代碼:

struct termios term; 
    int openLocation 
    int ioResult 
    openLocation = open("../../dev/fb0",O_RDWR); 
    ioResult = ioctl(openLocation,TCGETS,&term); 

這讓我錯誤號25,我真的不知道是什麼問題。我最終需要通過取消ICANON位和禁用ECHO來禁用規範模式,並且再次需要使用ioctl。感謝您的幫助球員

+0

也許應該確保開放的成功 – kch 2014-09-19 04:40:34

+0

開放肯定工程 – 2014-09-19 17:43:07

回答

0

增加一個perror或strerror可能會幫助您看到(如@kch提到的)您的公開呼叫失敗,並且ioctl在無效文件(ENOTTY)上被呼叫。

1

/dev/fb0是一個幀緩衝設備,而不是終端。你不能使用TCGETS就可以了。

你也許是指/dev/tty0

+0

有趣的......好,我肯定要使用FB0對於一些視覺的東西,但我想這不是我要使用禁用按鍵回聲.. 。在任務中沒有提及fb0以外的其他文件,但可能tty0是我需要使用的...我會試一試,但是這是有意義的,因爲我是試圖禁用按鍵回顯? – 2014-09-19 17:46:20