修改終端驅動程式屬性

2022-08-15 01:57:16 字數 1030 閱讀 9172

函式原型:

int tcgetattr(int fd, struct termios* info)//從與fd有關的終端驅動程式中獲取當前設定

int tcsetattr(int fd, int when, struct termios* info)//從info所指的設定複製到fd相關的終端驅動程式

成功返回0,失敗返回-1.when:表示什麼時候更新驅動程式的設定

when的值:

tcsanow:現在立即更新

tcsadrain

tcsaflush

struct

termios settings;

tcgetattr(fd,&settings);

settings.c_flag|=echo;//

開回顯settings.c_cc[verase]='

\b';//

將退格鍵作為刪除鍵

tcsetattr(fd,tcsanow,&settings);

//測試乙個位是開還是關

if(settings.c_flag&echo);//

開了為真

//置位

settings.c_flag|=mask;

//清除位

settings.c_cflag&=~mask;

非阻塞輸入

當使用getchar()或read的時候,程序會阻塞以等待使用者的輸入,如何關閉輸入阻塞?阻塞是任何乙個開啟的檔案的屬性,可以通過fcntl或open函式來啟動非阻塞輸入,非阻塞即是不用等待輸入,直接執行後面的程式,如果程式是個迴圈,當程式再次回到輸入的位置時再檢測是否有輸入了,有則接收,無則執行後面的程式,就像執行普通語句一樣,不會在那等待。

struct

termios settings;

tcgetattr(fd,&settings);

settings.c_flag|=o_nonblock;//

也可以時o_ndelay

tcsetattr(fd,tcsanow,&settings);

linux 驅動程式 高階字元驅動程式

ioctl方法 驅動程式的原型實現 int ioctl struct inode inode,struct file filp,unsigned int cmd,unsigned long arg ioctl 命令選擇 位段結構 number direction ioc read ioc write...

linux裝置驅動程式 字元裝置驅動程式

先留個 有一起學習驅動程式的加qq295699450 字元裝置驅動 這篇比較惱火。載入成功,但是讀不出來資料,有知道怎麼回事的,留個言,一起討論下 資料結構 struct scull mem struct scull dev dev 整個驅動程式 如下 include include include...

Linux裝置驅動程式 字元裝置驅動程式

1.檢視主裝置號,次裝置號 進入 dev目錄執行ls l,第四,五列分別為主次裝置號,10,180,1,5,這些是主裝置號,而60,63這些就是次裝置號 130 shell android dev ls l crw rw r system radio 10,60 1969 12 31 21 00 a...