2

これは本当に些細なことかもしれません。

ファイルストレージOSに依存しますか?

DosからUnixに移動したときにテキストファイルが変更されるのはなぜですか。Unixのエディタは特定の文字を異なる方法で解釈するか、DosからUnixに移動したときにファイル自体が変更されるため、ユーティリティDosからUnixに変更されます。

JavaクラスファイルをDosからUnixに移動でき、それが変更されないのはなぜですか?

プラットフォームに依存しないストレージとは何ですか?

4

6 に答える 6

1

バイトと文字の格納方法には根本的な違いがあります。見る:

http://www.joelonsoftware.com/articles/Unicode.html

さまざまな文字セットの説明と、それらがさまざまなオペレーティングシステム間でどのように異なるか(およびさらに多くのこと)。

Javaクラスファイルはバイナリであり、常にビッグエンディアンに保存されます。これは、どのオペレーティングシステム間で移動しても、常に同じになることを意味します。

于 2009-05-27T07:06:12.600 に答える
1

File Storage は OS に依存しないわけではありません。内容は同じでも、解釈される方法が異なります。一例を挙げると、何年も前に、(Business Basic) プログラムとデータを Datageneral ミニコンピュータから DOS に移植する必要がありました。ファイルは 8 ビット エンコーディングに遭遇し、DOS で「理解」する前に (7 ビットに) 変換する必要がありました。

于 2009-05-27T07:30:56.333 に答える
1

簡単な答え: 場合によります。

DOS から Unix に移動した場合、テキスト ファイル自体は変更されません。たとえば、USB キーを使用して移動してみてください。

サードパーティ製ソフトウェアを使用してコピーすると、変更される場合ftpがあります。テキスト変換を処理するオプションがあります。

また、これはOSだけでなくファイルシステムにも依存します。OS X 以前の Mac (HFS ファイルシステム) では、ファイルはデータとリソースの 2 つのフォークに保存されていました。フォークの概念を持たないファイルシステムにコピーすると、ファイルは、データフォークとリソースフォークの両方を含む単一のファイル (AppleSingle) または 2 つの別個のディレクトリにある 2 つのファイル (AppleDouble) としてコピーできます。

于 2009-05-27T07:55:20.093 に答える
0

いいえ、ファイルは変更されません。それらを編集するための規則のみ。

変更できるのは、ディレクトリなどのカタログ化と一覧表示に使用されるファイルシステム構造とメタデータ(つまり、タイムスタンプ)です。また、ファイルは暗号化されたファイルシステムで自然に暗号化されますが、ファイルシステムの複雑さは、ほとんどの場合、システムコールを介してファイルを読み取るアプリケーションに対して透過的です(パーティションリサイザーやその他の低レベルディスクツールを作成している場合に関連します)。

明確にするために、Linux OSには、UNIX規則を使用するためにvimまたはemacsを必要とするものはありません。実際、多くのエディターとアプリケーションは、改行エンコーディングを検出して適応させることができます。OSではなく、ファイルの処理方法はソフトウェア次第です。

于 2009-05-27T07:06:22.490 に答える
0

次の 2 つの違いがあります。

改行

  • Unix: \n
  • X より前の Mac OS: \r
  • Windows: \r\n

リトルエンディアン/ビッグエンディアン

エディアネスは異なる場合がありますが、これは多くの場合、Unicode およびバイナリ データの場合にのみ問題になります。

于 2009-05-27T07:08:41.317 に答える
0

一般に、ファイルシステムは、書き込みを要求された方法でファイルを保存します。ファイルを読み取るプログラムは、ファイルからバイトを解釈します。

たとえば、DOS (および Windows) では、改行は 2 バイトで構成されますが、Unix では 1 バイトのみです。しかし、これはあくまでも基準です。Unix 上のプログラムは、2 バイトの改行を含むファイルを読み取ることができます。これらのプログラムは、改行が何であるかを知る必要があるだけです。

于 2009-05-27T08:19:14.710 に答える