реклама на сайте
подробности

 
 
> функция получения даты, на линуксе
romez777
сообщение Dec 13 2005, 09:40
Сообщение #1


Местный
***

Группа: Свой
Сообщений: 292
Регистрация: 9-11-04
Пользователь №: 1 077



Приветствую.
Написал простую функцию (работаю под линуксом) возвращающую текущую дату, все бы ноормально но одна немаловажная проблема - утечка памяти. Потому как не могу в функци вызвать free(d), тогда нечего возвращать. Я уже совсем туплю, не знаю как обойти это smile.gif Нужна рекомендация

char* get_date(void)
{
time_t curtime;
struct tm *loctime;
char *d;

if ( !(d = malloc(9)) )
return NULL;

curtime = time(NULL); /* get сurrent time */
loctime = localtime(&curtime); /* convert to localtime representation */
strftime(d, 9, "%m/%d/%y", loctime);

return d;
}

Заранее благодарю!
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
zaratustra
сообщение Dec 15 2005, 13:51
Сообщение #2


Участник
*

Группа: Новичок
Сообщений: 65
Регистрация: 18-11-05
Пользователь №: 11 054



char * cdate(char *now_date)
{
static struct timeval tv;
struct tm tm0;
struct timezone tz;

gettimeofday(&tv, &tz);
localtime_r(&tv.tv_sec, &tm0);
sprintf(now_date,"%04d/%02d/%02d", tm0.tm_year+1900, tm0.tm_mon+1, tm0.tm_mday);
return now_date;
}
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 29th July 2025 - 02:38
Рейтинг@Mail.ru


Страница сгенерированна за 0.01375 секунд с 7
ELECTRONIX ©2004-2016