文字列がEclipseとgdbでヌル終了するかどうかを確認する方法はありますか? 「デフォルト」のデバッグで、引用符で保存したいテキストが表示されたら、正しくヌル終了していると見なすことができますか? また、文字列を正しくコピーするための最良の方法は何ですか?C:Eclipse/gdbとNullで終わる文字列
答えて
使用はstrncpyは安全のために、これはあなただけでその終了していない場合には、最大長を指定することができます。チェックするのは難しいですが、デバッガに正しく表示されていれば正しく終了します。
編集:それは明確にそれが唯一の長さを指定した場合、関数呼び出しは、奇妙な結果が得られないだろうという意味で、あなたはまだ手動で文字列を終了する必要があり、それが安全になると判断している必要があります。
一般に、nullで終了しない唯一の時間は、Cライブラリのすべての関数が適切に終了した文字列を返すと考えられるため、プログラマのエラーによるものです。可能性のあるエラーはターミネータの余分なバイトを忘れる可能性があります。私は遭遇した文字列の問題が、多分カスタム操作関数を除いてヌルターミネーターが失敗したためであった時代を考えるのは難しいです。 GDB、** "X/100sb文字列変数" で
これは悪いアドバイスです。 - 'strncpy()'は、ソース文字列が 'n'文字以上であればバッファを終了させません。 http://www.gratisoft.us/todd/papers/strlcpy.htmlで述べたように、 "プログラマーがstrncpy()とstrncat()で安全な文字列操作をしようとしたが、 APIの微妙さ。 –
@MichaelBurr私が知っているのは、ヌルで終わっているかどうかわからない場合は、strncpyを使うべきだということでした。 –
- 1. null終了文字列とx86アセンブリ言語でヌルで終わらない文字列との違い
- 2. System.Text.Encoding.Unicode.GetStringからnullで終わる文字列を取得する
- 3. ダブルNULLで終わる文字列のリストを返します
- 4. Perl NULLで終了する文字列
- 5. Pythonで終わる文字列のパターンテスト
- 6. R:文字列の1つで終わる文字列
- 7. 文字列が ";"で終わるときの部分文字列エラーまたは ""
- 8. 特殊文字で終わる分割文字列 - Java
- 9. 文字列内のC文字列ポインタがNULLで終了する方法は?
- 10. Lexで文字列 "lngt"で終わる文字列を取得する
- 11. 文字列の終わりから行末までの文字列の終わりまでのスライシング
- 12. 正規表現 - 文字列で始まり文字列で終わる
- 13. '^ M'文字列の終わり
- 14. null終端文字ポインタ
- 15. Delphi - NULL終端文字
- 16. JavaScript正規表現:文字列の開始と文字列の終わり
- 17. apiでstd :: string_viewを使用すると、nullで終わる文字列が返されます。
- 18. 文字列の3と7で終わる数字を置換する
- 19. $ {で始まり、}で終わる文字列を抽出する
- 20. XmlTextWriterとnull文字列
- 21. 特殊文字で始まり、終わる文字列を検索するC#
- 22. 特定の文字で始まり、終わる文字列を見つける
- 23. 特殊文字で終わる文字列を削除するには?
- 24. Apache Lucene 5.5.3 - 特殊文字で終わる文字列を検索する
- 25. C#の文字列は空の文字列で終わりますか?
- 26. ASCIIZ文字列で終わる構造体を展開する
- 27. 始まる文字列と同じシーケンスで終わる文字列に一致する正規表現
- 28. 抽出文字列の特殊文字で始まり、終わる
- 29. null文字列の配列を終了します
- 30. DllImport nullで終了した文字列を返すAccessViolationException
**あなたの最初の100個の文字を表示します。文字列を表示するには、100を適切な数字に置き換えます。 – Jack
gdb x/100sbは、文字列の次のメモリ位置がランダムなnullを持つ可能性があるため、不確実です。 – resultsway