導航:首頁 > 編程系統 > 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函數庫參考手冊相關的資料

熱點內容
java比安卓工資低嗎 瀏覽:342
分析報告的兩個數據概要是什麼 瀏覽:71
榮耀6plus強制開機密碼 瀏覽:52
pgf文件復制到word文檔中 瀏覽:876
徐州數據中心有多少家 瀏覽:415
全能快刷下載到哪個文件 瀏覽:760
清理沒用的文件夾 瀏覽:490
蘋果手機錄音文件在哪怎麼傳電腦 瀏覽:720
微信文件助手傳視頻左面出現感嘆號 瀏覽:950
pr查詢站長工具 瀏覽:72
javasax生成xml 瀏覽:305
win10安裝爐石 瀏覽:95
使命召喚iphone 瀏覽:878
追光系統編程軟體是什麼 瀏覽:450
ios獲取網路流量 瀏覽:668
mac中我的應用程序 瀏覽:483
蘋果手機怎麼打包一個文件夾 瀏覽:3
數控編程課程都有哪些 瀏覽:785
ps文件圖案不對或已遭破壞 瀏覽:926
nsurlsession上傳文件 瀏覽:376

友情鏈接