[libc] Introduce asctime, asctime_r to LLVM libc asctime and asctime_r share the same common code. They call asctime_internal a static inline function. asctime uses snprintf to return the string representation in a buffer. It uses the following format (26 characters is the buffer size) as per 7.27.3.1 section in http://www.open-std.org/jtc1/sc22/wg14/www/docs/n2478.pdf. The buf parameter for asctime_r shall point to a buffer of at least 26 bytes. snprintf(buf, 26, "%.3s %.3s%3d %.2d:%.2d:%.2d %d\n",...) Reviewed By: sivachandra Differential Revision: https://reviews.llvm.org/D99686
23 lines
771 B
C++
23 lines
771 B
C++
//===-- Implementation of asctime function --------------------------------===//
|
|
//
|
|
// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
|
|
// See https://llvm.org/LICENSE.txt for license information.
|
|
// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
|
|
//
|
|
//===----------------------------------------------------------------------===//
|
|
|
|
#include "src/time/asctime.h"
|
|
#include "src/__support/common.h"
|
|
#include "src/time/time_utils.h"
|
|
|
|
namespace __llvm_libc {
|
|
|
|
using __llvm_libc::time_utils::TimeConstants;
|
|
|
|
LLVM_LIBC_FUNCTION(char *, asctime, (const struct tm *timeptr)) {
|
|
static char buffer[TimeConstants::AsctimeBufferSize];
|
|
return time_utils::asctime(timeptr, buffer, TimeConstants::AsctimeMaxBytes);
|
|
}
|
|
|
|
} // namespace __llvm_libc
|