Cのファイルにあるすべての関数の先頭と末尾の両方の行番号を取得したいと思います。この目的のためにLinuxに使いやすいツールがあるかどうか知っていますか?Cでファイル内のすべての関数の範囲(つまり行番号)を取得する方法は?
答えて
$ ctags -x --c-kinds=f filename.c
これは、各機能の開始行のみを示していますが、それでも十分です。
コードはかなり一般的な規則を使用して書かれていた場合は、関数は最初の列に}
を含む単一の行で終わる必要があり、最初に与えられた最後の行を取得するには非常に簡単です:
awk 'NR > first && /^}$/ { print NR; exit }' first=$FIRST_LINE filename.c
このメッセージが表示されるのはなぜですか? ctags:認識できないオプション '--c-types = f' 完全なオプションリストについては、 'ctags --help 'を試してください。 – user1038013
@ user1038013おそらく、--c-種類を認識しないctagsのバージョンがあります。このオプションの目的は、関数(#DEFINESなどではない)の情報のみを出力することです。あなたはそのオプションとgrepを省略することができます "関数"。 –
--c-種類はExuberant ctags 5.5.4 –
- 1. アクセス番号の番号の範囲内の番号の範囲を見つける方法
- 2. C++のファイルから行番号を取得する方法は?
- 3. 範囲からの番号の取得
- 4. SolarisでBACKTRACE(関数+行番号)を取得する方法は?
- 5. 範囲内の逆番号
- 6. MySQLの範囲内のすべての数値を取得
- 7. Scala:データフレーム内の行の範囲を取得する方法
- 8. 範囲内のデバイスの電話番号を取得しますか?
- 9. 郵便番号を指定すると、その郵便番号の範囲内にある緯度経度の範囲を調べる方法は?
- 10. sqlの週番号から日付範囲を取得する方法
- 11. ブックの使用範囲をすべて取得する方法
- 12. 郵便番号の範囲でフィルタリングする方法は?
- 13. 番号の範囲
- 14. は、関数内で同じ範囲の値を取得
- 15. mysqlの範囲内で一意の番号を生成する方法
- 16. 範囲内では、すべての宣言はコンパイル後の関数の先頭(C言語)で行われますか?範囲内
- 17. 範囲内のRubyアームストロング番号
- 18. トレーススタック内の行番号のファイル名を取得する/エラーオブジェクト
- 19. asyncで行番号を取得する方法C#
- 20. 範囲内のすべての素数
- 21. プロジェクトのクラス内でビルド番号とバージョン番号を取得する方法はありますか
- 22. 範囲番号の正規表現すべての基底
- 23. 範囲をトリガーせずに範囲内の特定の番号をトリガする方法
- 24. ディレクトリ内のすべてのファイルの行数を取得する方法
- 25. 特定の日付または日付範囲でSVNリビジョン番号を取得する方法
- 26. すべての残りの行(現在の行を含む)のローリングMIN番号を取得する方法
- 27. グリッド内のストアの範囲を取得する方法
- 28. Tableau上の番号範囲で分類を行います。
- 29. 番号1のすべての行を取得する
- 30. GDBを使用して関数のメモリ範囲を取得する方法
てみてください[ctags](http://ctags.sourceforge.net/) – aus