タグ付けされた質問 「seek」

1
C ++標準がファイルを処理する方法を模索するのはなぜですか?
C ++は、streamoffタイプを使用して(ファイル)ストリーム内のオフセットを表し、[stream.types]で次のように定義されます。 using streamoff = implementation-defined ; タイプstreamoffは、オペレーティングシステムの最大可能ファイルサイズを表すのに十分なサイズの、署名された基本的な整数型の1つの同義語です。287) 287)通常は長いです。 これは、(long32ビット幅しかない可能性があるを使用するのとは対照的に)大きなファイル内をシークできるため、理にかなっています。 [filebuf.virtuals]はbasic_filebuf、ファイル内でシークする関数を次のように定義します。 pos_type seekoff(off_type off, ios_base::seekdir way, ios_base::openmode which = ios_base::in | ios_base::out) override; off_typestreamoffはと同等です。[iostreams.limits.pos]を参照してください。ただし、標準は、関数の効果を説明し続けます。私は最後の文にイライラしていますfseek。 効果:レッツをwidth示しますa_codecvt.encoding()。is_open() == false、またはの場合、off != 0 && width <= 0位置決め操作は失敗します。それ以外の場合、way != basic_ios::curまたはoff != 0、および最後の操作が出力された場合は、出力シーケンスを更新し、シフト解除シーケンスを書き込みます。次は、新しい位置をシーク:場合はwidth > 0、呼び出しfseek(file, width * off, whence)、そうでない場合は呼び出しますfseek(file, 0, whence)。 fseeklongパラメータを受け入れます。off_typeとstreamoff定義されている場合long long(標準で推奨されているとおり)、これはlong呼び出し時にへのダウンコンバージョンにfseek(file, width * off, …
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.