asctime_s() function
This function is used to convert the given calendar time into a textual representation but unlike asctime() function, the asctime_s() function require the user to provide a string buffer to store the formatted time string.
We can’t modify the output calendar time in asctime() function whereas we can modify the calendar time in asctime_s() function. The general representation of asctime_s is “Www Mmm dd hh:mm:ss yyyy“.
Syntax
errno_t asctime_s(char *buf, rsize_t bufsz, const struct tm *time_ptr)
Parameters
- This function accepts three parameters:
- time_ptr: pointer to a const struct tm object specifying the time to print
- buf: pointer to a buffer provided by the user that must be of at least 26 bytes in length
- bufsz: the size of the buffer provided by the user
Return Value
- It returns an integer value based on the status of the operation. It returns ‘0’ on success and non-zero vlaue on failure.
Note: In some C-compilers asctime_s() won’t be supported. We can use strftime() function instead of asctime_s() function.
Example
The below C program demonstrates the asctime_s() function in C.
C
// __STDC_WANT_LIB_EXT1__ is a User defined // standard to get astime_s() function to work #define __STDC_WANT_LIB_EXT1__ 1 #include <stdio.h> #include <time.h> int main( void ) { struct tm tm = * localtime (&( time_t ){ time (NULL) }); printf ( "%s" , asctime (& tm )); // Calling C-standard to execute // asctime_s() function #ifdef __STDC_LIB_EXT1__ char str[50]; // Using the asctime_s() function asctime_s(str, sizeof str, & tm ); // Print the current time // using the asctime_s() function printf ( "%s" , str); #endif } |
Output
Sun Jun 4 17:25:35 2023
Contact Us