Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Программное обеспечение под *NIX системы > Как узнать время, которое проработала прога?


Автор: MacTep 4.12.2006, 13:43
Знаю, что можно воспользоваться системным вызовом times. Прочита о нем все, но не получается ничего... Подскажите...
Вот мой код, но он не работает:
Код

#include <sys/types.h>
#include <sys/times.h>
...
long times (buffer)
struct tms *buffer;
times(buffer);
printf("Times: %d\n",buffer.tms_cstime);

Объясните, пожалуйста, в чем проблема???

Автор: EnergoHokum 22.12.2006, 16:57
А тебе обязательно изнутри программы померить надо? Насколько я помню, в стандартных утилитах есть программка time, её натравливаешь на свою программулину (ну, там параметры, всё такое, не помню...) и по окончании она скажет время исполнения.

Автор: MacTep 22.12.2006, 23:42
Обязательно внутри... smile

Автор: bilbobagginz 23.12.2006, 11:29
Цитата

Прочита о нем все, но не получается ничего... 

а потом:
Код

#include <sys/types.h>
#include <sys/times.h>
/* ... */
long times (buffer)  /*  <--- не понял что это за строчка. */
struct tms *buffer; /*  <--- а куда он сейчас указывает ? */
times(buffer);
printf("Times: %d\n",buffer.tms_cstime);


код сверху вовсе не доказывает что читал man.
с каких пор можно функции передавать неинициализированный пойнтер "buffer" ?
думаю правильней будет так:

Код

/* в конце кода использовать ф-ю: */
void prn_times(){
    struct tms my_tms;
    times(&my_tms);
    printf("Times: %d\n", my_tms.tms_cstime);
    return;
}



Автор: EnergoHokum 25.12.2006, 16:50
Т. е. тебе нужно замерить скорость некоторого куска программы? Попробую дома, если чего получится, отпишу...

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)