1
A
答えて
2
概要
あなたがLinux上でなら、それは/usr/include/bits/fcntl.h
にする必要があります。
#define O_RDONLY 00
あなたはrgrep
、またはctags
とVim
、またはcpp
、またはcwhere
を使用してそれを見つけることができます。
rgrep
最も簡単な方法は、rgrep
、grep -R
別称を使用することです。
$ rgrep O_WRONLY .
./X11/Xw32defs.h:# define O_WRONLY _O_WRONLY
./linux/fs.h: * to O_WRONLY and O_RDWR via the strange trick in __dentry_open()
./linux/smbno.h:#define SMB_O_WRONLY 0x0001
./asm-generic/fcntl.h:#define O_WRONLY 00000001
./security/_pam_macros.h: if ((fd = open(_PAM_LOGFILE, O_WRONLY|O_NOFOLLOW|O_APPEND)) != -1) {
./security/_pam_macros.h: if ((fd = open(_PAM_LOGFILE, O_WRONLY|O_APPEND)) != -1) {
./security/_pam_macros.h: if ((fd = open(_PAM_LOGFILE, O_WRONLY|O_NOFOLLOW|O_APPEND)) != -1) {
./security/_pam_macros.h: if ((fd = open(_PAM_LOGFILE, O_WRONLY|O_APPEND)) != -1) {
./bits/fcntl.h:#define O_WRONLY 01
ctagsの
それとも、あなたは/usr/include
でctags -R
を実行し、vim -t O_WRONLY
を実行することができます。
それとも、少し良く、より多くのタイピング:
find . /usr/include -name "*.h" |
ctags -f - -L - |
grep "^O_WRONLY " |
cut -d " " -f 1,2,3 |
sed -e 's# /\^# #;s#\$/\;"$##'
CPP
私が見つけた最良の方法は、cpp
を使用しています。
cpp -dD YOUR_SOURCE_FILE | less
その後、あなたの#define
を検索し、例えば:実行してみて、あなたが必要な#include
sのYOUR_SOURCE_FILEと呼ばれるソースファイルを持っていると仮定すると
/O_WRONLY
、上にスクロールして上にある最初のファイル名を見つけます。この場合:
# 27 "/usr/include/bits/fcntl.h" 2 3 4
あなたはman fcntl
で述べた3つのヘッダファイルを含める場合O_WRONLY
は/usr/include/bits/fcntl.h
からピックアップされていることを意味します。
cwhere
私はcpp
を実行している自動化するcwhere
というスクリプトいる:desc
がインストールされている場合、あなただけの名前を
$ cwhere O_WRONLY sys/types.h sys/stat.h fcntl.h
/usr/include/bits/fcntl.h: #define O_WRONLY 01
を入力することができますそれを使用する関数#define
、例えば。拡張ファイルをチェック
$ cwhere O_WRONLY 'fcntl()'
/usr/include/bits/fcntl.h: #define O_WRONLY 01
関連する問題
- 1. 行1にすべての列のデータが含まれていません
- 2. エラー "System.ArrayにLastWriteTimeの定義が含まれていません"
- 3. 'SqlConnection'に 'Parameters'の定義が含まれていません
- 4. "System.Net.Sockets.Socketに「SendTo」の定義が含まれていません。
- 5. dbcontextに 'Refresh'の定義が含まれていません
- 6. string [*、*]に 'Contains'の定義が含まれていません
- 7. 「ブール」に「ブースト」の定義が含まれていません
- 8. に 'GetAwaiter'の定義が含まれていません
- 9. WebAPI: 'IHttpActionResult'に 'GetAwaiter'の定義が含まれていません
- 10. 'HashAlgorithm'に 'Create'の定義が含まれていません
- 11. ビューモデルにブートストラップの定義が含まれていません
- 12. 'System.Web.UI.WebControls.Image'に 'FromStream'の定義が含まれていません
- 13. 'string'に 'TryParse'bの定義が含まれていません
- 14. アプリケーションにはUiParentの定義が含まれていません
- 15. 'ExpandoObject'に 'PropertyChanged'の定義が含まれていません
- 16. 配列に 'AsReadOnly'の定義が含まれていません
- 17. IEnumerableに 'Type'の定義が含まれていません
- 18. Nancy.DynamicDictionaryにはXの定義が含まれていません
- 19. AutoMapper.MapperにCreateMapの定義が含まれていません
- 20. タイプにはIsAssignableFromの定義が含まれていません。
- 21. BaseClientServiceにファイルの定義が含まれていません
- 22. PHPUnitコードカバレッジに特定の行が含まれていません
- 23. 'フレーム'に 'CornerRadius'(フレーム)の定義が含まれていません
- 24. C# 'Object'に 'position'の定義が含まれていません
- 25. エラー: 'オブジェクト'に 'methodName'の定義が含まれていません
- 26. HostingEnvironmentにIsHostedの定義が含まれていません
- 27. Unity Error:UnityEngine.Component 'に' velocity 'の定義が含まれていません
- 28. CharにContains()の定義が含まれていません
- 29. charに 'CIP_ID'の定義が含まれていません
- 30. 'UnityEngine.GameObject []'に 'Transform'エラーの定義が含まれていません
有用でした。 :) – John
なぜ2つのfcntl.hファイルがあるのだろうか。 1つはusr/includeに、もう1つはusr/include/bitsにあります。 – John
誰かがなぜアイデアを得ましたか? – John