2017-11-09 4 views
1

私は/dev/sdcにpendriveを持っています。fopenでフラッシュドライブに書き込む

私はそれに簡単なファイルシステムを書きたいと思います。これをファイルとしてどのように開くのですか? fopenで開くことは可能ですか?

私はそれをクリアしようとしましたが、バイトは返されません。

while (fgetc(device) != EOF) { 
    fputc(0, device); 
} 
+2

おそらく、 'fopen()'で開くことができるかもしれませんが、あなたの目的のために、 'open()'でそれを開く方が適切でしょう、そして一般的にPOSIXファイル記述子ベースC stdio関数の代わりにI/O関数。 –

+0

@JohnBollinger 'open'ファイルにどのようにバイナリとして書きますか? –

+0

ファイル記述子ベースの入出力機能は、バイナリ入出力のみを提供します。データを書き込むためのそのグループの主な機能は、適切な名前の['write()'](https://linux.die.net/man/2/write)です。 –

答えて

1

あなたがfopen()でデバイスファイルを開いて、それを操作するC stdio関数を使用することができ、それはおそらく(したがって、ファイルディスクリプタを取得POSIX open()でそれを開くためにあなたの目的のために、より適切であろうことは可能であるが、 FILE *)ではなく、write()およびread()のようなPOSIXファイル記述子ベースのI/O関数を使用してそれを操作することができます。これらは、自分自身で提供するもの以外のライブラリレベルのバッファリングや、Unixライクなオペレーティングシステムでは、あなたが提案しているような低レベルの操作のためのC stdio関数よりも慣習的な、本質的なバイナリインタフェースをファイルに提供します。

関連する問題