10

このコードを実行すると、次のエラーが発生します。

syslog(LOG_ERR | LOG_USER, "%s",errorString);

'const string {aka const std ::basic_string}'を'constchar*'に変換できません>引数'2'から'voidsyslog(int、const char *、...)' inServer.cpp / PeCounter
line 478 C /C++の問題

プログラムをデーモン化していますが、coutを使用してstdioに出力すると、errorString値は正常に出力されますが、syslog呼び出しを使用すると出力されません。

std :: basic_string(char)を'constchar'の形式にする任意の方法。

4

2 に答える 2

8

コンパイルの問題を修正しているように見えるstd::basic_stringアイテムアクセス方法があることがわかりました。c_str()

詳細については、次のサイトを参照してください:http ://en.cppreference.com/w/cpp/string/basic_string

于 2012-10-19T16:06:32.153 に答える
5

c_str()orメンバー関数は、文字列を含む配列の最初の要素へのdata()ポインタを提供しchar_typeます。文字列オブジェクト自体が有効で変更されていない限り有効です(ただし、再割り当てを引き起こす可能性のある操作によってポインタが無効になる可能性があることに注意してください。格納しないことをお勧めします)。

于 2012-10-19T16:08:19.047 に答える