运行此代码时出现以下错误:
syslog(LOG_ERR | LOG_USER, "%s",errorString);
无法将'const string {aka const std :: basic_string}'转换为'const char *'以获取>参数'2'到'void syslog(int,const char *,...)'inServer.cpp / PeCounter
第478行C / C ++问题
我正在守护程序,并且当使用cout输出到stdio时,errorString值打印得很好,但是在使用syslog调用时它不会打印。
以任何方式将std :: basic_string(char)变为'const char'的形式。
答案 0 :(得分:8)
我发现std::basic_string
有一个项目访问方法c_str()
,似乎可以解决编译问题。
以下是包含更多信息的网站:http://en.cppreference.com/w/cpp/string/basic_string
答案 1 :(得分:4)
c_str()
或data()
成员函数提供指向包含字符串的char_type
数组的第一个元素的指针。只要字符串对象本身保持有效且不变,它就是有效的(但要注意可能导致重新分配的操作可能使指针无效 - 最好不要存储它)。