2012-07-02 31 views
0

我正在實現一些來自unistd.h和fcntl.h的系統調用(打開,讀取,關閉等) 某些需要特殊標誌和宏(O_CREAT,O_RDWR)如何僅包含頭文件中的定義

有沒有辦法只包含標誌和宏而沒有函數定義 來自unistd.h和fcntl.h?

感謝

+0

如果僅是一個測試,你可以編輯2個文件,並通過周圍'的#ifdef DONT_INCLUDE_PROTOTYPES ...#endif'函數原型。 –

+0

我不想編輯頭文件。有沒有其他方法? – Jah

+0

這是什麼動機? – robert

回答

1

也許-imacros選項gcc是你在找什麼。

-imacros FILE

Exactly like `-include`, except that any output produced by 
scanning FILE is thrown away. Macros it defines remain defined. 
This allows you to acquire all the macros from a header without 
also processing its declarations. 
0

一般 - 沒有。如果您查看相關頭文件,您會發現沒有原型被明確的宏包圍,這隻會排除它們。

您可能會設法通過包含sys/types.h,stddef.h等,但不是全部,來獲得定義的的一些

所有的函數原型被聲明爲「extern」,順便說一句,因此應該不會妨礙您的實現。

相關問題