any
バッファに操作の種類がないと境界外アクセスにつながるような文字バッファにサイズ制約を課すことができますか?はバッファサイズに制限を課します
答えて
簡潔に:いいえ
Cは、手動で実行しない限り、ランタイムチェックを実行しません。
無効なアクセスを防ぐために、独自の関数、マクロ、バッファ単位のブックを使用することができます。ただし、このインターフェイスをどこでもにする必要があります。つまり、そのバッファに直接アクセスできなくなります。
また、余分な条件チェックのためにパフォーマンスに影響が見られます。範囲外のアクセスを引き起こさないことが判明しているコードブランチに対して直接アクセスを使用することで、その一部を回避できる可能性があります。
EDIT:
「不正なアクセスが検出されると、コードが何をすべき」のではなく、主要な問題もあります。他の言語で例外が発生したかのように、プログラムがエラーを出力して終了するかどうかエラーを無視すべきか?それを修正する必要がありますか?
この問題を解決するCの方法は、各コードのブランチ/パートが安全であることを確認することです。
これは役に立ちます:http://duma.sourceforge.net/あなたのクエストで。
短い答え:いいえ。
は長い答え:
が範囲外に行かないbuffer[ULLONG_MAX]
ほど愚かであっても、何かを確保するために、あなたがあなたのバッファを宣言する必要がバインド最大の整数よりも大きいですシステム上で表現可能である。このようなバッファが必要とするメモリの量を除いて、これは明らかに不可能です。
実用的な解決方法は、手動でバッファのサイズを追跡し、バッファへの信頼できないインデックスをバッファサイズと照合することです。
デバッグ補助として使用されているMemory Safety Checkerを参照して、配列またはバッファでエラーが発生したかどうかを判断するためにCコードを計測します。これはvalgrindできない問題を見つける。
- 1. Vimeoがアプリケーションにレート制限を課す
- 2. Celery rate_limitは制限を課さない
- 3. Socket.Sendのバッファサイズは制限されていますか?
- 4. xsd:dateTimeに分の制限を課す方法は?
- 5. Goチャネルがバッファサイズを制限する理由
- 6. グラフィックエディタのプログラミングの課題解決の時間制限を超えましたC++
- 7. Appengineのクォータ制限の課金が有効に設定されています
- 8. Javaは、基礎となるオペレーティングシステム以外のファイル名にさらに制限を課しますか?
- 9. アンドロイドプラットフォームは、RESTに開発者が認識すべき制限を課していますか?
- 10. asp.net:dot net platform 3.5は、制限がある場合、一度に実行されるスレッドのスレッド数に制限を課しますか?
- 11. ALSAバッファサイズにハードウェア定義の上限がありますか?
- 12. 制限文字を制限し、特別チャレターを迅速に制限する問題はありますか?
- 13. MARSSで線形制約を課す
- 14. Sybase IQはIPを制限します
- 15. Dojoはクエリを制限しますか?
- 16. Scalaはクラスパラメータ値を制限します
- 17. SSRS - STRTOSET関数のCONSTRAINEDフラグによって課せられた制限が破られました
- 18. ブートストラップカラムを無制限に拡張するにはどうしたらいいですか(上限制限なし)?
- 19. バッファサイズはnodejs
- 20. LUTに制限があります:無制限の次元で
- 21. ビッグコマースはリソースの上限を制限しました250
- 22. textareaは無制限で、制限はありません
- 23. BigQueryのグループ制限を制限する
- 24. XSD:属性をxs:floatまたは ""に制限します。
- 25. ただし、UDPソケットレシーバのバッファサイズはレイテンシに影響しますか?
- 26. amazon s3を制限して予算を制限する
- 27. appsinkのバッファサイズを設定するには?
- 28. C#のファイルサイズの制限または制限
- 29. WKWebViewのドメイン/ URLを制限します
- 30. ログイン試行を制限しますか?