0

私はUbuntu Saucyを使用しています.c構造体逆参照演算子が必要なファイルで誰かが私に教えてくれることを望んでいました->私が..とき

grep -R -> . 

私は得る

 bash: .: Is a directory

「。」を省略すると、私は得る

bash: syntax error near unexpected token `newline' 

この機能を別の言語で再現したいのですが、Googleには何もありませんでした..どんな助けも大歓迎です。

4

4 に答える 4

1

あなたのgrepは正しく書かれていません:

grep -R -> . 

それは何をしているのですか?このようなもの:

grep -R - > . 

これで、もう少し明確になるかもしれません: "-" (標準入力の可能性があります。grep についてはわかりませんが、多くのツールが標準入力を意味するために使用します) を調べます。そして、結果を "." に書き込みます。ただし、それはディレクトリ (具体的には現在のディレクトリ) です。だから失敗する。

-> 演算子を検索する場合は、次のように使用できます。

grep -R -- "->" . 

「--」は、「この後オプションの処理を停止する」ことを意味するかなり標準的な Unix のものであり、「->」を引用符で囲むと、シェルがそれを 2 つのトークン (stdin とリダイレクト) として解釈するのを停止する必要があります。

いずれにせよ、演算子 -> のソース コードが見つからないため、これはまったく重要ではありません。これは言語で定義されており、それを実装するソース コードは完全にコンパイラ内にあります。したがって、本当に必要な場合は、コンパイラのソースをダウンロードしてそこに grep します...それでも、「->」を grep してもすぐに見つからない場合があります。

于 2013-11-11T14:59:14.123 に答える
0

演算子はライブラリ クラスや関数ではなく、"定義" はありません (オーバーロードされた演算子について話している場合を除きます)。

コンパイラはシンボルを解析して適切なコードを作成しますが、「->」を何らかのメソッドに置き換えるだけではありません。

于 2013-11-11T14:55:08.360 に答える
0

-inは、grep新しいコマンド オプションを指定しています。したがって、それを回避する必要があります。を検索する便利なgrep構文があります。grep -- "->"->

ただし、演​​算子はメソッドではないため、何かが見つかるとは思えません。

于 2013-11-11T14:59:18.273 に答える