C Linux ioctl TCGETS和TCSETS errno 25

问题描述:

对于任务,我需要使用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

增加一个perror或strerror可能会帮助您看到(如@kch提到的)您的公开呼叫失败,并且ioctl在无效文件(ENOTTY)上被呼叫。

/dev/fb0是一个帧缓冲设备,而不是终端。你不能使用TCGETS就可以了。

你也许是指/dev/tty0

+0

有趣的......好,我肯定要使用FB0对于一些视觉的东西,但我想这不是我要使用禁用按键回声.. 。在任务中没有提及fb0以外的其他文件,但可能tty0是我需要使用的...我会试一试,但是这是有意义的,因为我是试图禁用按键回显? – 2014-09-19 17:46:20