問題タブ [c-standard-library]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c - ファイルの長さを計算するときに fseek() の戻り値を確認する必要がありますか?
バイナリ ファイルの長さを取得するための慣用的なスニペットがあります。
…ペダンティックであることfseek(file, 0, SEEK_END)
は、バイナリ ストリームに対して未定義の動作をすることを知っています[ 1 ] – しかし、率直に言って、これが問題であるプラットフォームでは、私も持っていませんfstat()
。とにかく、これは別の質問のトピックです…</p>
私の質問は次のとおりfseek()
です。この場合、戻り値を確認する必要がありますか?
このようなケースでチェックされたのを見たことがありません。また、ここでどのようなエラーが返される可能性があるfseek()
のかも気になります。fseek()
編集:
Clifford's answerを読んだ後、ファイルのサイズを計算する際に値を処理しfseek()
てftell()
返す最良の方法は、専用の関数を作成することだとも思います。ただし、Clifford の良い提案ではsize_t
データ型を処理できませんでした (結局、サイズが必要です!)。そのため、最終的に最も実用的なアプローチは、ファイルのサイズを格納するためにポインターを使用し、戻り値を保持することだと思います。故障専用機能の価値。安全なサイズ計算機のためのクリフォードのソリューションへの私の貢献は次のとおりです。
そのため、ファイルの長さを知る必要がある場合は、次のように簡単に実行できます。
printf - Clang はどの標準 C ライブラリを使用しますか? glibc、それ自身、または他のもの?
glibc が gcc の標準 C ライブラリ実装の名前であると確信しています。
しかし、LLVM/Clang についてはわかりません。標準Cライブラリ全体の独自の実装が付属しているかどうか、またはglibcも使用しているかどうかをGoogleで調べました。驚いたことに、私が見つけたのは、Google が LLVM 用の新しい libc を作成することを検討していることを論じた最近の記事だけです。しかし、それが置き換えるものではありません。
LLVM/Clang ソース リポジトリでさえ、私が盲目または愚かである可能性が高いのですが、それを見つけることができないようです。
明確にするために、私はC標準ライブラリにのみ興味があり、C++標準ライブラリには興味がありません。私は特にprintf
、関数ファミリーの実装に興味があります。
Clang の libc/標準 C ライブラリの実装またはそのソース リポジトリを探す場所を教えてもらえますか?