1
私は/dev/sdc
にpendriveを持っています。fopenでフラッシュドライブに書き込む
私はそれに簡単なファイルシステムを書きたいと思います。これをファイルとしてどのように開くのですか? fopen
で開くことは可能ですか?
私はそれをクリアしようとしましたが、バイトは返されません。
while (fgetc(device) != EOF) {
fputc(0, device);
}
私は/dev/sdc
にpendriveを持っています。fopenでフラッシュドライブに書き込む
私はそれに簡単なファイルシステムを書きたいと思います。これをファイルとしてどのように開くのですか? fopen
で開くことは可能ですか?
私はそれをクリアしようとしましたが、バイトは返されません。
while (fgetc(device) != EOF) {
fputc(0, device);
}
あなたがfopen()
でデバイスファイルを開いて、それを操作するC stdio関数を使用することができ、それはおそらく(したがって、ファイルディスクリプタを取得POSIX open()
でそれを開くためにあなたの目的のために、より適切であろうことは可能であるが、 FILE *
)ではなく、write()
およびread()
のようなPOSIXファイル記述子ベースのI/O関数を使用してそれを操作することができます。これらは、自分自身で提供するもの以外のライブラリレベルのバッファリングや、Unixライクなオペレーティングシステムでは、あなたが提案しているような低レベルの操作のためのC stdio関数よりも慣習的な、本質的なバイナリインタフェースをファイルに提供します。
おそらく、 'fopen()'で開くことができるかもしれませんが、あなたの目的のために、 'open()'でそれを開く方が適切でしょう、そして一般的にPOSIXファイル記述子ベースC stdio関数の代わりにI/O関数。 –
@JohnBollinger 'open'ファイルにどのようにバイナリとして書きますか? –
ファイル記述子ベースの入出力機能は、バイナリ入出力のみを提供します。データを書き込むためのそのグループの主な機能は、適切な名前の['write()'](https://linux.die.net/man/2/write)です。 –