linux系統kbhit的幾種實現

2021-05-26 18:45:01 字數 1398 閱讀 5553

一,用select

#

include

#include

#include

#include

#include

time

.h>

void changemode(

int)

;int kbhit(

void);

int main(

void

)ch =

getchar()

;printf

("\ngot %c\n"

, ch)

;changemode(0)

;return 0;

}void changemode(

int dir)

else

tcsetattr( stdin_fileno, tcsanow,

&oldt);}

int kbhit (

void

)

二,用非阻塞io

#include

#include

#include

#include

int kbhit(void)

struct termios oldt, newt;

int ch;

int oldf;

tcgetattr(stdin_fileno, &oldt);

newt = oldt;

newt.c_lflag &= ~(icanon | echo);

tcsetattr(stdin_fileno, tcsanow, &newt);

oldf = fcntl(stdin_fileno, f_getfl, 0);

fcntl(stdin_fileno, f_setfl, oldf | o_nonblock);

ch = getchar();

tcsetattr(stdin_fileno, tcsanow, &oldt);

fcntl(stdin_fileno, f_setfl, oldf);

if(ch != eof)

ungetc(ch, stdin);

return 1;

}

return 0; }

int main(void)

{ while(!kbhit())

puts("press a key!");

printf("you pressed '%c'!/n", getchar());

return 0;

linux主要幾種檔案系統

近些天,每天晚上都學一下linux,主要是因為興趣。現在主要對linux學習內容做一些總結吧。linux 檔案系統 首先什麼是檔案系統?從 維基百科 上得到的定義 計算機的檔案系統是一種儲存和組織計算機檔案和資料的方法,它使得對其訪問和查詢變得容易。檔案系統通常使用硬碟和光碟這樣的儲存裝置,並維護檔...

Linux系統軟體安裝的幾種方式

linux系統,乙個檔案能不能執行看的是有沒有可執行許可權x,不過真正的可執行檔案是二進位制檔案 binary file 舉例來說linux上的c語言原始碼編寫完後,通過gcc程式編譯後就可以建立乙個可執行的二進位制檔案。1 什麼是make 與configure make是乙個程式,會去找makef...

Linux系統中安裝軟體的幾種方式

目錄 紅帽派原始碼包安裝 configure make和make install rpm包安裝 yum源安裝 debian派 deb包安裝 apt get源安裝 linux有很多種發行版本,各種發行版本之間安裝軟體方式和命令不一樣,同乙個版本之間安裝軟體也有不同的方法。但是,大體來說,linux有兩...