テキストエディタでオブジェクトファイルを開いたときに表示されるシンボルは何ですか(@、..のような記号は意味がありますか?オブジェクトファイルはバイナリファイルなので、1と0が見えますが、なぜこれらのシンボルが表示されますか?なぜオブジェクトファイル(linuxの.oファイル)がvimのテキストエディタで開かれたときにぎこちないように見えますか?
答えて
バイナリファイルにはバイナリデータが含まれているため、テキストエディタが表示する予定のASCIIデータではないためです。それは "非印刷"文字をどのように表示するかはエディタの責任です。
Linuxでは、実際に0と1を表示したい場合は、od
を使用して他の形式(8進数、16進数、バイナリ)でファイルをダンプできます。
"あなたのテキストエディタが見たいと思っているASCIIデータ"と同じではありません - "ASCIIデータ"のようなものはありません。それは少し下のビットです。 –
@EmployedRussianテキストエディタがデータに何らかの解釈を適用しないと真剣に主張していますか?それはちょうど "ビット"だった場合、OPの質問は非常に公正です - あなたはそれが0と1を表示することを期待するだろう... – John3136
オブジェクトファイルがバイナリファイルなので、私たちは、1と0の
あなたの期待が間違ってで見ることを期待しています。 0と1を表示するには、0と1を表示するツールを使用する必要があります。
このような表示が非常に冗長であるため、これを行う標準的なユーティリティは見つからず、誰も本当に0と1を見たくはありません。プログラマは、よりコンパクトな16進表示を好む。例えば、16進値0xfd
は、0と1の次のシーケンスとして表現することができる。1111 1101
。
注1:正確に同じ0と1のシーケンスで、異なる方法で表現されています。
注2:あなたはビットとして数字を表現することはすぐに手に負えなくなっていることがわかります。0xfffffffd
は1111 1111 1111 1111 1111 1111 1111 1101
ですが、なぜ私たちは、これらのシンボルを見ていますか?
vim
エディタ解釈ASCII
文字として0と1のシーケンス。たとえば、「A」のASCII
コードは0x41
、または0と1の次のシーケンスは0100 0001
です。完全ASCII
テーブルhere。
次の行を持っていvim
にファイルfoo.txt
作成し、このことをよく理解するために:0と1が中に含まれていることが
od -c foo.txt
od -b foo.txt
od -tx1 foo.txt
cat foo.txt
注:
AAAAaaaa
BBBBbbbb
が続いて、このファイルを実行しますファイルはに変更されませんが、上記の各コマンドは、これらの0と1を異なる方法でと解釈します。
バイナリファイルに戻ってください。
すべてファイルには一連のバイトが含まれています。これらのバイトは、異なるツールによって異なる解釈が可能です。
「バイナリファイル」と"テキストファイル"の意味は、後者にはのバイトしか印刷されず、ASCII
文字が関連付けられており、前者には以外のの文字が含まれています(これはバイナリファイルには、印刷可能なASCII
に対応するバイトも含まれています。stringsユーティリティでは、このような印刷可能なバイトシーケンスを「バイナリファイル」から抽出し、「テキスト」として解釈できます。表示可能な文字列としてのバイナリデータhere
- 1. なぜXcodeはLocalized.stringsファイルがこのように見えるように見えるのですか?
- 2. なぜこのコンボボックスはこのように見えますか?
- 3. ブラウザでDOCXを開こうとするときにぎこちなくなるようにする
- 4. ログイン後のタブバー - なぜこのように見えますか?
- 5. ImportError:libcudart.so.8.0:共有オブジェクトファイルを開くことができません:そのようなファイルまたはディレクトリなし
- 6. ImportError:libgomp.so.1:共有オブジェクトファイルを開くことができません:そのようなファイルまたはディレクトリなし
- 7. CSVファイルを読み込んだときにぎこちない結果が見つかりました
- 8. なぜこのように見えますか?
- 9. ヒープのサイズが大きくなってから落ちます。たくさん。このスクリーンショットを見ると、これはメモリリークのように見えますか?
- 10. テーブルが大きくなりすぎると、cpanelのphpmyadminが遅すぎます。他の人たちはこれをどのように扱うのですか?
- 11. このレイアウトは、それが想定されているように見えないのはなぜですか?
- 12. サーバが.xbapファイルを実行しようとしたときに.exeファイルを見つけることができないと言うのはなぜですか?
- 13. Vimでファイルを開くとvim diffが開きますか?
- 14. phpファイルが正常に動作しない、ブラウザで開くことができない、テキストエディタを開く
- 15. Vimをデバッグ(Mac)したときにgdbがソースを見つけられないのはなぜですか?
- 16. vimで大きな/巨大なファイルを開くことができず、 "新しいファイル"モードで開きます
- 17. なぜ私のpngファイルが見えないのですか?
- 18. なぜIFパラメータがIFパラメータのように見えないのですか?
- 19. メニューが開いたときに画像がこのように移動するのはなぜですか?
- 20. オブジェクトファイルが-fPICで構築されている場合、objdumpのようなものでどのように伝えることができますか?
- 21. .jsファイルが.htmlファイルに何もしないように見えるのはなぜですか?
- 22. なぜヒープメモリ使用量グラフがこのように見えるのですか?
- 23. vimでtunnelのようなものを使うことができますか?
- 24. 行がないときにこれをどのように数えることができますか?
- 25. ファイルを開くときにvim autocommandが実行されない
- 26. ファイルが開かれなかったのはなぜですか?
- 27. Linux MintでRubyやRVMが1.8.7に固執しているように見えるのはなぜですか?
- 28. ファイルが開かれていないときにPythonマルチプロセッシングで公開ファイルが多すぎる
- 29. はImportError:libcudart.so.7.0:共有オブジェクトファイルを開くことはできません:そのようなファイルまたはディレクトリ
- 30. :libudev.so:共有オブジェクトファイルを開くことはできません:そのようなファイルまたはディレクトリ
「バイナリファイル」という用語を誤解しています。これは 'バイナリ表記' – Serge