C++에서 간단한 로깅 클래스를 학습 목적으로 작성했습니다. 내 코드 오늘의 문자열을 반환하는 함수가 포함되어 있습니다. 그러나 'localtime'이 호출 될 때마다 컴파일러 오류가 발생합니다.C++ - 'localtime'이 함수 또는 변수가 안전하지 않을 수 있습니다.
std::string get_date_string(time_t *time) {
struct tm *now = localtime(time);
std::string date = std::to_string(now->tm_mday) + std::to_string(now->tm_mon) + std::to_string(now->tm_year);
return date;
}
나는 #define _CRT_SECURE_NO_WARNINGS
을 사용해 보았습니다. 그것은 작동하지 않았고 같은 오류가 나타났습니다. 나는 또한 _CRT_SECURE_NO_WARNINGS
을 프로젝트 속성의 전 처리기 정의 안에 넣어 보았습니다. 이로 인해 해결되지 않은 외부 오류가 발생했습니다.
누구에게 할 일이 있습니까?
처럼 : 여기
내가 (테스트되지 않은 Windows에서) 무엇입니까? 'localtime'은 소유하고있는 메모리 영역에 대한 포인터를 반환하기 때문에 위험 할 수 있습니다. 그래서 여러 번 호출하면 구조체를 복사 할 때마다 반드시 확인해야합니다. 또한, 그런데, 당신이 문자열을 만드는 방법, 만약 당신이 "2112016"을 얻는다면 그것은 21/1/2016인지 2/11/2016인지 당신은 모른다. –