Linux 中如何快速檢視 C 庫函式的標頭檔案以及相應的函式資訊?

時間 2021-05-11 12:57:48

1樓:蒲公英

自從看了《Unix/Linux程式設計實踐教程》(五星推薦這本書),檢視標頭檔案和函式資訊非常方便。

man -k keyword | grep "name"查詢乙個man手冊中的簡短說明包含keyword的函式,name為函式名的關鍵字(可以不加管道)

man -k timer | grep "set"查詢乙個man手冊中的簡短說明包含timer的函式,set為函式名的關鍵字(可以不加管道),可以查詢到以下資訊:

getitimer (2get or set value of an interval timer

setitimer (2get or set value of an interval timer

timer_settime (2) - arm/disarm and fetch state of POSIX per-process timer

timerfd_settime (2) - timers that notify via file descriptors

timerisset (3timeval operations

函式呼叫任君選擇。

grep "keyword" /usr/include/*.h | grep "typedef"

grep "keyword" /usr/include/*/*.h | grep "typedef"

如 grep "time_t" /usr/include/*.h | grep "typedef"

可以查詢到 " typedef __time_t time_t; "

以上方法可以查詢關鍵字為keyword的結構體、型別、函式原型的定義typedef可以替換為define嘗試查詢,幾次重複查詢找到的定義,就能最終確定。

locate keyword.h可以查詢名為keyword的標頭檔案所在的目錄樹

如 locate time.h | grep "/usr/include"可以查詢到一下資訊:

/usr/include/time.h

/usr/include/utime.h

/usr/include/i386-linux-gnu/bits/time.h

/usr/include/i386-linux-gnu/sys/time.h

/usr/include/linux/time.h

/usr/include/linux/utime.h

/usr/include/linux/netfilter/xt_time.h

/usr/include/python2.7/datetime.h

標頭檔案任君選擇。

從此在linux下程式設計,查詢函式原型、標頭檔案、型別定義方便多了。

2樓:PegasusWang

在終端下直接用man 2 fun 可以檢視系統函式,用man 3 fun可以檢視c庫函式(fun是你要查的函式名字)

在vim裡,你直接把游標移到頭檔案,然後gf命令(go to file)可以跳轉到頭檔案檢視裡邊的東西,在vim裡邊在函式上用shift + k可以跳轉到函式查詢。

另外學linux程式設計可以參考《unix環境高階程式設計》

3樓:Hilon

Windows下很多_s的函式Linux下都沒有的。你可以先man下試試,沒有的話試試不帶_s的。strcat之前一直是不帶的,對於新標準,Linux一直是支援比較快的。

但是有一些東西究竟需不需要支援,就是另外一回事了。這個說起來又要打嘴仗了

linux中c庫函式和系統呼叫的區別是什麼呢?

徐聖 簡單的說c庫函式是為了方便使用者程式設計以及使用OS,對系統呼叫的封裝和擴充套件。封裝體現在使用系統功能介面更友好,更方便。直接調系統呼叫API,你會發現引數較多,各種返回異常需要自己處理。C庫一定程度上幫你做了這個工作。擴充套件體現在系統呼叫沒有的功能,c庫幫你擴充了。比如string庫很多...

如何不用庫函式用C 實現RSA檔案加密?

步驟 實現大數庫 實現大數四則運算 使用Montgomery實現模乘模冪 藉由上述基礎完成Miller Rabin素數測試然後就是簡單的函式呼叫進行c d N之類的操作了 柳傾 本科畢業設計寫過RSA 加密。需要額外的庫最根本的原因是需要 大數庫 因為RSA 加解密資料塊長度超過常用型別 int,s...

在C 中如何實現復合多個函式的高階函式

guohc FuncCombinator的引數不固定所以只能傳入delegate的陣列。static void Main string args static Func FuncCombinator Delegate da TResult result TResult param return re...