10

运行此代码时出现以下错误:

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

无法将 'const string {aka const std::basic_string}' 转换为 'const char*' for >argument '2' to 'void syslog(int, const char*, ...)' inServer.cpp /PeCounter
line 478 C /C++ 问题

我正在守护程序,当使用 cout 输出到 stdio 时,errorString 值打印得很好,但在使用 syslog 调用时它不会打印。

将 std::basic_string(char) 转换为“const char”形式的任何方法。

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 回答