long syscall(longnumber, ...);syscall的第乙個引數number根據例子程式都是使用sys_*,**定義的呢?
根據man 2 syscall可以看到number是使用的 #include 標頭檔案,
裡面又#include 和 # include
其中asm/unistd.h裡面根據平台不同最終引入了asm/unistd_*.h標頭檔案
裡面定義了__nr_*
bits/syscall.h裡面又根據__nr_* define了sys_*
所以最終可以使用sys_*
具體的名字都是有規則的,根據系統呼叫名字加速sys組成,可以自行搜尋。
C 標頭檔案 巨集 編譯問題
2019 02 15 小記 c 標頭檔案的防重複包含是針對同乙個原始檔而言 原因 include 標頭檔案就是一段 的拷貝,標頭檔案中若有型別定義等,重複包含就會造成編譯錯誤,若無型別定義等不造成重複定義的,則無需防重複包含機制 防重包含機制 pragma once ifndef macro def...
glibc標頭檔案和巨集定義
標頭檔案沒啥好說的,無非就是 和 的區別,這估計只要是學過c c 的人都明白。現在的編譯器對頭檔案的包含順序沒有要求,但老的c實現則不一樣。當然,我們現在無需關心標頭檔案順序了。我們為啥要包含標頭檔案呢?標頭檔案裡面有定義嘛,使用任何函式之前都必須定義該函式。所以我們並不強求包含標頭檔案,只要你自己...
庫標頭檔案的匯入匯出巨集
ifdef cfg api being compiled ifdef win32 define cfg api export declspec dllexport else define cfg api export endif else if defined win32 define cfg ap...