[解決済み] C++17でファイルサイズをバイト単位で取得する方法
2023-01-09 05:07:53
質問
特定のオペレーティング システムのために知っておくべき落とし穴はありますか?
重複が多い ( 1 , 2 , 3 , 4 , 5 ) の質問ですが、何十年も前に回答されたものです。これらの問題の多くで非常に高い投票数の回答は、今日では間違っています。
.sxの他の(古いQAからの)メソッド
-
stat.h (ラッパー sprintstatf ), syscall を使用します。
-
tellg() は、定義に従って 位置 しかし バイトとは限らない . 戻り値の型は
int
.
どのように解決するのですか?
<filesystem>
(C++17で追加)を使うと、この
は非常にわかりやすい
.
#include <cstdint>
#include <filesystem>
// ...
std::uintmax_t size = std::filesystem::file_size("c:\\foo\\bar.txt");
コメントにもあるように、もしこの関数を使ってファイルから何バイト読み込むかを決めようと思っているなら、次のことに注意してください...
...ファイルがあなたによって排他的にオープンされていない限り、そのサイズは、あなたがそれを要求してから、そこからデータを読もうとするまでの間に変更される可能性があります。
- ニコル・ボーラス
関連
-
[解決済み】'std::cout'への未定義の参照
-
[解決済み] 文字列の単語を反復処理するにはどうすればよいですか?
-
[解決済み] なぜテンプレートはヘッダーファイルでしか実装できないのですか?
-
[解決済み] 型名の後の括弧は、newで違いがあるのでしょうか?
-
[解決済み] C#でファイルサイズを取得する方法は?
-
[解決済み】.NETを使用して、人間が読めるファイルサイズ(bytes)の略語を取得するにはどうすればよいですか?
-
[解決済み】ファイルサイズ(バイト)を人間が読める文字列に変換する方法
-
[解決済み】ファイルサイズを人間が読めるようにする?
-
[解決済み】数値を2進数で表示(coutを使用)するには?
-
[解決済み] javaでファイルサイズを効率的に取得する
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] テスト
-
[解決済み】C++でint型に無限大を設定する
-
[解決済み】LLVMで暗黙のうちに削除されたコピーコンストラクタの呼び出し
-
[解決済み】「corrupted size vs. prev_size」glibc エラーを理解する。
-
[解決済み] 既に.objで定義されている-二重包含はない
-
[解決済み] [Solved] インクルードファイルが開けません。'stdio.h' - Visual Studio Community 2017 - C++ Error
-
[解決済み】C++ - ステートメントがオーバーロードされた関数のアドレスを解決できない。
-
[解決済み] スタックアロケーションにより初期化されていない値が作成された
-
[解決済み] off_t型の完全な定義はどこにあるのですか?
-
[解決済み] C++でファイルのサイズを取得するにはどうしたらいいですか?[重複しています]。