導航:首頁 > 編程系統 > linuxc函數庫參考手冊

linuxc函數庫參考手冊

發布時間:2025-02-18 13:47:28

linux下有沒有類似Windows的VC下的kbhit()函數我需要用

① 沒有直接的對應,需要自己實現。

② 可以寫c函數、匯編、或用第3方跨平台的函數庫(比如ncurses)。下面是linux下c函數實現:

#include<stdio.h>
#include<termios.h>
#include<unistd.h>
#include<sys/types.h>
#include<sys/time.h>

voidchangemode(int);
intkbhit(void);
intmain(void)
{
intch;
changemode(1);/*注意,打開mode*/
while(!kbhit())
{
putchar('.');
}

ch=getchar();
printf(" Got%c ",ch);
changemode(0);/*注意,關閉mode*/
return0;
}

voidchangemode(intdir)
{
staticstructtermiosoldt,newt;

if(dir==1)
{
tcgetattr(STDIN_FILENO,&oldt);
newt=oldt;
newt.c_lflag&=~(ICANON|ECHO);
tcsetattr(STDIN_FILENO,TCSANOW,&newt);
}
else
tcsetattr(STDIN_FILENO,TCSANOW,&oldt);
}

intkbhit(void)
{
structtimevaltv;
fd_setrdfs;

tv.tv_sec=0;
tv.tv_usec=0;

FD_ZERO(&rdfs);
FD_SET(STDIN_FILENO,&rdfs);

select(STDIN_FILENO+1,&rdfs,NULL,NULL,&tv);
returnFD_ISSET(STDIN_FILENO,&rdfs);
}

---- 上述代碼來自互聯網。

② 從事linux 下c開發,要學哪些知識推薦一下每個學習階段的書籍,越詳細越好。

想要把C開發學好,最有效的方法,是從用linux系統開始,安裝linux或者linux虛擬機,邊用邊學。這里推薦一本極好的書《鳥哥liunx私房菜》,通俗易懂,真的很不錯!
然後就是C開發,分為兩大塊:底層與應用!
C開發相對伺服器管理較為深奧的,需要長時間的積累,還要了解硬體知識,操作系統的基本原理,Makefile語法等。建議從驅動程序入手,因為驅動程序是linux內核中模塊化比較強的部分,相對易於理解,而且鏈接軟體與硬體,能夠從整體來學習。
這方面有很多經典書籍,其中入門比較好的有:
《嵌入式Linux應用開發完全手冊》 韋東山著

內核與驅動編程類: 《linux設備驅動開發詳解》 宋寶華著
《linux內核設計與實現》 Robert Love著 (學內核最好讀物)
linux應用編程類: 《Unix環境高級編程》 (被譽為「聖經」)
《linux程序設計》
建議先看應用編程類,因為不涉及底層的內容,相對容易理解。等到這幾本書消化的差不多了,就開始看經典之作《linux設備驅動程序》和《深入理解linux內核了》,這兩本書非常權威,我也都看過,覺得講的確實比其他書籍更細節,更准確。
這些基本可以說是最好的學習linux的書籍,只要循序漸進的看書,實踐,一定會有效果的。

③ linux下c語言編程read()函數的問題

返回-1的時候,要根據錯誤碼來判斷原因,請看下面的函數說明:

表頭文件 #include<unistd.h>
定義函數版 ssize_t read(int fd,void * buf ,size_t count);
函數說明 read()會把參數fd 所指權的文件傳送count個位元組到buf指針所指的內存中。若參數count為0,則read()不會有作用並返回0。返回值為實際讀取到的位元組數,如果返回0,表示已到達文件尾或是無可讀取的數據,此外文件讀寫位置會隨讀取到的位元組移動。
附加說明 如果順利read()會返回實際讀到的位元組數,最好能將返回值與參數count 作比較,若返回的位元組數比要求讀取的位元組數少,則有可能讀到了文件尾、從管道(pipe)或終端機讀取,或者是read()被信號中斷了讀取動作。當有錯誤發生時則返回-1,錯誤代碼存入errno中,而文件讀寫位置則無法預期。
錯誤代碼 EINTR 此調用被信號所中斷。 EAGAIN 當使用不可阻斷I/O 時(O_NONBLOCK),若無數據可讀取則返回此值。 EBADF 參數fd 非有效的文件描述詞,或該文件已關閉。

④ linux下C語言的庫函數的頭文件放在哪個目錄下啊

一般來說是放在來/usr/include目錄下的;

但是這個源並不局限也是可控的,如果我們進行開發過程中, 就會在內核的庫函數文件目錄:

例如在:/XXX/XXX/linux-X.X/include

所以根據不同的情況,頭文件存放的目錄也是不同的,具體需要可以根據locate和grep命令進行查詢。

閱讀全文

與linuxc函數庫參考手冊相關的資料

熱點內容
通用資料庫綠色 瀏覽:276
書生版本庫 瀏覽:433
app利率走勢哪裡看 瀏覽:743
怎麼盜取微信密碼軟體 瀏覽:445
vssdf文件是什麼 瀏覽:216
怎麼看網路約談視頻 瀏覽:571
qq瀏覽器會分享wifi嗎 瀏覽:120
zip文件分成3個 瀏覽:261
txt的文件1m是多少個字 瀏覽:642
易班下載文件在哪裡 瀏覽:175
怎麼獲得有效電腦網路ip地址 瀏覽:471
怎麼解決網站痛點 瀏覽:800
iphone4ios71降級613 瀏覽:650
garageband升級 瀏覽:689
科學linux 瀏覽:447
哪裡的app理財好 瀏覽:799
linux下線程的創建線程數 瀏覽:804
怎麼改變文件大小 瀏覽:574
飛雪流水軟體注冊破解工具 瀏覽:814
csgo比賽數據哪裡看 瀏覽:961

友情鏈接