Rubyの文字列にEOF
シンボルを書き込むプラットフォームに依存しない方法はありますか? * nixではシンボルが^D
だと信じていますが、Windowsでは^Z
だから、私は尋ねます。Rubyクロスプラットフォームの方法でEOFシンボルを書く
答えて
EOFは文字ではなく、状態です。端末は、この状態を表すために制御文字を使用します(C-d)。そのようなことは "EOF 文字"と同じものを書くことではありません。ファイルに書き込む場合は、完了したら閉じてください。このmailing list postを参照してください:あなたは、インバンドが、特殊な文字、ファイルの終わりを示し 値としてEOF を考えているよう
ですね。 は、それを 帯域外のセンチネル値と考える方が良いです。 Cでは、EOF は通常-1で、関連付けられたAPI は整数戻り値を指定します。したがって は有効なインバンド値と混同されないようにEOFが保証されています。
は、ここではいくつかのより多くの証拠(Unix上でこれを行う)です。
$ cat > file
hello^V^Dworld
^D
$ cat file
helloworld
型付け^ V^Dは、ファイルに文字通り制御-Dの文字を挿入します。 worldと入力した後、^ Dはパイプを閉じます。ファイルは12バイトの長さの10文字になり、^ Dと改行のために2つ多くなります。最終的な^ Dはファイルには終りません。これはちょうどターミナル/シェルによってパイプを閉じるために使用されます。
EOFが文字であるというのはよくある誤解です – GogaRieger
一般にEOF文字はありません。つまり、これにはクロスプラットフォームのソリューションはなく、特定のプラットフォーム上でさえも、そのようなキャラクターの処理は純粋に従来のものであり、矛盾しています。ファイルを閉じて終了します。
しかし、賢明であるために、特定のモードでファイルを読むときの特定のオペレーティングシステムは、ファイル文字のリテラルの末尾をサポートしています。たとえば、Windows環境でC stdio APIを使用してテキストモードでファイルを読み取る場合、リテラルコントロール-Z(文字コード26)はファイルの終わりをstdioに通知します。これはCP/Mからのホールドオーバーとして持っているMS-DOSからのホールドオーバーです。 stdioを使用してバイナリモードでファイルを読み込むと、control-Zはファイルを終了しません。
それにもかかわらず、「知っている、使用しない」という機能だけと考えるべきです。あなたがWindows上で忠実な入出力を見ることができたらそれについて知りたいですが、それを使用するのは狂気です。
- 1. jsファイルでrubyメソッドを書く方法
- 2. Ruby Premature EOF?
- 3. 私のMacにクロスプラットフォームのC++プログラムを書く方法はありますか?
- 4. Rubyで最短のrndヘックスを書く方法
- 5. RubyでRubyで正しいと効率的なコードを書く方法
- 6. JavaのファイルからEOFシンボルのようなsmthを得る方法
- 7. Rubyを角かっこで書く方法
- 8. RubyでPHP mcrypt_ecb decryptを書く方法は?
- 9. Rubyでコマンドラインユーティリティを書く
- 10. Rubyでirssiスクリプトを書く
- 11. クロスプラットフォームな方法は
- 12. rubyコントローラでメソッドを書く方法と、次にtext_fieldの ":value =>"に書き込む方法
- 13. MonoTouchクロスプラットフォームの作成方法
- 14. eofをキャッチする方法
- 15. RubyでDSLを書くためのチュートリアル
- 16. Rubyでcase文のテストを書く
- 17. eofでファイルを開くプラグイン
- 18. ターミナル画面をクリアするクロスプラットフォームRubyメソッド
- 19. osxでCrypto ++クロスプラットフォームをコンパイルする方法
- 20. C++クロスプラットフォームsnprintfでの実装方法は?
- 21. Ruby - PDFファイルにEOFマーカーを追加する、または他の方法でバイパスする方法:: Reader :: MalformedPDFError:PDFにEOFマーカーが含まれていません
- 22. リモート/ローカルサーバーのファイル操作メソッドをRubyでより効率的に書く方法
- 23. Ruby RspecでSelenium Webdriverを書く
- 24. メソッドのパラメータがシンボルである場合、Rubyをチェックインする方法は?
- 25. scanfとEOFを正しく使用する方法は?
- 26. プログラムが開くファイルにEOFを通知する方法
- 27. Rubyシンボルでダッシュ " - "をエスケープするには?
- 28. 文書クラスの中からシンボルを参照する方法は?
- 29. "az"、 "AZ"、 "。"、 "\ n"、 ""のみを使用してRubyプログラムを書く方法
- 30. マントル - 辞書のバリュートランスフォーマーを書く方法
好奇心の理由から、なぜこれが必要ですか?例えば、 –
。私はEOFマーカーがないので、私は "変換"(ImageMagick)で私に変換できないいくつかのPDFファイルを持っています。同時に、それらのファイルをデスクトップアプリケーションで見ることができます。そのようなマーカーを追加してからPDFを変換しようとしています... –