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

熱點內容
cc資料庫怎麼獲得時間 瀏覽:226
ug3d硬料開出怎麼編程 瀏覽:151
如何獲取文件Linux命令 瀏覽:981
大智慧軟體哪個版本最好 瀏覽:698
狼人殺自動主持app叫什麼 瀏覽:949
checkbox怎麼綁定資料庫 瀏覽:945
編程怎麼設置一分鍾開燈 瀏覽:754
如何把桌面文件發送到自己郵箱 瀏覽:498
校園網站怎麼看選修的課 瀏覽:59
大數據專業哪個最好 瀏覽:467
一個文件內容替換另一個文件 瀏覽:288
ios8最好的版本 瀏覽:400
錄屏決定文件大小的是什麼 瀏覽:322
數據用不了是哪裡壞掉了 瀏覽:310
百度網盤文件傳輸格式 瀏覽:455
蘋果系統txt文件 瀏覽:629
家裝網站怎麼設計 瀏覽:202
adc指令微程序 瀏覽:487
名片模板word 瀏覽:635
怎麼把文件夾上鎖 瀏覽:331

友情鏈接