Форум: "Потрепаться";
Текущий архив: 2003.10.16;
Скачать: [xml.tar.bz2];
ВнизАналог GetTickCount во FreePascal Найти похожие ветки
← →
pasha_golub (2003-09-26 16:54) [0]Сабж или как узнать время работы процесса используя средства FreePascal в ОС Линух.
ЗЫ Задал сюда, потому как они там на форум раз в год наверное заходят
← →
clickmaker (2003-09-26 18:32) [1]Ну а сюда наверное раз в 2 года :)
← →
pasha_golub (2003-09-26 18:37) [2]Не, просто Тяпница :-)
← →
BOA_KAA (2003-09-26 18:49) [3]На Цы так мона
fd = open("/proc/uptime", O_RDONLY);
read(fd,...);
...
← →
pasha_golub (2003-09-27 11:30) [4]2BOA_KAA
Напиши дальше плз, а я переведу
← →
Anatoly Podgoretsky (2003-09-27 11:32) [5]Значит у тебя нет Линукса?
← →
pasha_golub (2003-09-27 11:33) [6]2Anatoly Podgoretsky
Есть, у меня нет хороших знаний С :-(
← →
PVOzerski (2003-09-27 11:55) [7]В FPC есть unit DOS, а в нем Procedure GetTime(var hour, minute, second, sec100: word); Не подойдет?
← →
Anatoly Podgoretsky (2003-09-27 11:58) [8]pasha_golub © (27.09.03 11:33) [6]
Отлично, тогда взгляни текстовым редактором указанный файл, при этом несколько раз, время указано в секундах, значит можешь расчитывать на 10 миллисекунд точность.
PVOzerski © (27.09.03 11:55) [7]
По всей видимости нет, ему под Линукс.
← →
pasha_golub (2003-09-27 12:04) [9]2PVOzerski
На данный момент я использую GetTime (есть аналог под Линух), но система то мультизадачная, то есть в найденный мною период времени на пике загрузки может отработать еще несколько десятков процессов
2Anatoly Podgoretsky
Я это понял, спасибо. Но это то же самое что и GetTime. А мне нужно узнать сколько процессорного времени выделено именно для этого процесса
← →
PVOzerski (2003-09-27 12:05) [10]2Anatoly Podgoretsky © (27.09.03 11:58) [8]
Я это понял. Но (ради TP compatibility) этот модуль есть и для *никсовых платформ. Специально проверил - в implementation этого модуля значится
Uses
Strings,Unix;
а реализация, кстати, такая:
Procedure GetTime(Var Hour, Minute, Second, Sec100: Word);
Begin
Unix.GetTime(Hour,Minute,Second,Sec100);
end;
:^)
Правда, у более старых версий FPC модуль Unix может называться Linux.
← →
pasha_golub (2003-09-27 12:12) [11]2PVOzerski
Я конечно не знаю, но у меня версия 1.0.10, я ее только два дня назад выкачал. В документах модуля Unix не нашел
← →
Anatoly Podgoretsky (2003-09-27 12:12) [12]Ты просил все таки GetTickCount, а этот файл по сути то
← →
pasha_golub (2003-09-27 12:16) [13]2Anatoly Podgoretsky
Да согласен, неудачная формулировка, но все таки...
← →
PVOzerski (2003-09-27 12:17) [14]2pasha_golub © (27.09.03 12:12) [11]
А у меня нестабильная ("разрабатываемая") 1.1, там разделили "общеюниксные" и "линуксные" функции по разным модулям. Потому о модуле Linux и предупреждал. 1.0.10 - это последний релиз, но не последняя существующая сейчас версия, просто ссылки на 1.1 - в другом разделе сайта FreePascal.
← →
pasha_golub (2003-09-27 12:24) [15]2PVOzerski
Я так и подумал. Так ты у нас экстремал, на нестабильных версиях работаешь :-)
← →
PVOzerski (2003-09-27 12:33) [16]>Я так и подумал. Так ты у нас экстремал, на нестабильных версиях работаешь :-)
Я был когда-то еще бОльшим экстремалом - компилятор и RTL патчил. Сейчас времени только на багрепорты осталось :^(
← →
pasha_golub (2003-09-27 12:40) [17]2PVOzerski
Уважаю. Так как мне подсчитать кол-во тиков проца на определенный процесс?
← →
pasha_golub (2003-09-27 12:46) [18]Кстати, только что получил интересные результаты. Два раза подряд запустил процесс с большим циклом. Так в первом случае, измеряя все тем же GetTime, получил 0.3 секунды, а во втором 0.1 секунды. Сами посудите такой разброс значений не есть хорошо!
Так что вопрос по прежнему актуален.
← →
PVOzerski (2003-09-27 12:55) [19]Так ведь Linux - не QNX, быть ОС реального времени (по крайней мере, обычные версии) не претендует. А я немного порылся. Вот описание функции gettimeofday - http://bsd.opennet.ru/man.shtml?topic=gettimeofday&category=2&russian=0
Правда, это тоже не совсем то, возможно.
← →
pasha_golub (2003-09-27 12:58) [20]2PVOzerski
Спасибо, посмотрел. В принципе те же яйца - вид сбоку. Вопрос еще как человеку близкому к проекту. Не могу найти функции chroot, chdir, хотя здравый смысл подсказывает, что без низ никак. Где их можно нарыть? Спасибо.
← →
PVOzerski (2003-09-27 13:03) [21]Вот, еще нарыл: :^)
/* ---- uptime of the machine ---- */
void uptime(void)
{
FILE *cpuinfofile, *versionfile, *uptimefile;
int uptime;
char line[MAXBUF];
uptimefile = fopen("/proc/uptime","r");
fgets(line,MAXBUF,uptimefile);
fclose(uptimefile);
if (sscanf(line,"%d.",&uptime))
{
int left,days,hours,minutes,secs;
days = uptime / DAYSEC;
left = uptime - (days * DAYSEC);
hours = left / HOURSEC;
left = left - (hours * HOURSEC);
minutes = left / MINSEC;
secs = left - minutes * MINSEC;
printf("Uptime: %2d:%2d:%2d:%2d\n",days,hours,minutes,secs);
}
}
← →
PVOzerski (2003-09-27 13:09) [22]Касательно моей близости к проекту: относительно Linux она сводится к тому, что у меня сейчас скачаны относительно свежие исходники, в том числе RTL, в которых могу копаться - чем сейчас и занимаюсь. RTL-то я патчил только виндовую.
← →
PVOzerski (2003-09-27 13:18) [23]>проекту. Не могу найти функции chroot, chdir, хотя здравый смысл подсказывает, что без низ
chdir - стандартная ф-ция RTL. Вот ее реализация для Linux:
Function Sys_Chdir(Filename:pchar):longint;
var
regs : SysCallregs;
begin
regs.reg2:=longint(filename);
Sys_ChDir:=SysCall(SysCall_nr_chdir,regs);
end;
Procedure ChDir(Const s: String);[IOCheck];
Var
Buffer: Array[0..255] of Char;
Begin
If (s="") or (InOutRes <> 0) then
exit;
Move(s[1], Buffer, Length(s));
Buffer[Length(s)] := #0;
sys_chdir(@buffer);
Errno2Inoutres;
{ file not exists is path not found under tp7 }
if InOutRes=2 then
InOutRes:=3;
End;
при этом syscall_nr_chdir = 12;
← →
pasha_golub (2003-09-27 14:06) [24]Ага, понятно, спасибо. А с chroot там чего? Если я сильно наглею, можно мне сбросить свежачок, а я сам покапаюсь :-)
← →
PVOzerski (2003-09-27 14:24) [25]У меня "свежачок" конца августа. Если мегабайты не пугают, качай лучше с сайта. Если primary перегружен, например, с норвежского зеркала
ftp://ftp.no.freepascal.org/pub/fpc/snapshot/v11/source/fpc.zip
Страницы: 1 вся ветка
Форум: "Потрепаться";
Текущий архив: 2003.10.16;
Скачать: [xml.tar.bz2];
Память: 0.49 MB
Время: 0.012 c