Ivanovo Linux Users Group - Not logged in
Forum Help Search Login
Previous Next Up Topic Софт / Программное обеспечение / PERL (7567 hits)
- By Dimidrol Date 26.03.04 10:29
Хочу считать текущее системное время для дальнейшей обработки в программе.
Пишу в скрипте:
     $time = system(clock);
     print "time = $time \n";

В результате выдает следующее:
     Fri Mar 26 12:00:00 2004
     time = 0

Подскажите что надо сделать, чтобы переменной "time" присваивалось значение "Fri Mar 26 12:00:00 2004".
Parent By LOE (Site/forum admin) Date 26.03.04 13:04
Ндя
А зачем использовать вызов system?
В перле в самом всё есть:
perldoc -f time
perldoc -f localtime
В последнем есть примеры как получить нужный формат используя use POSIX qw(strftime);
"No! Try not! Do. Or do not. There is no try." -- Yoda
Parent - By Dimidrol Date 31.03.04 11:07
Почему при вызове из скрипта:
     kill(962);
  удаление процесса не происходит, тогда как при вызове из командной строки:
     kill 962
  все нормально.
Parent - By LOE (Site/forum admin) Date 31.03.04 11:47 Edited 31.03.04 11:48
Читаем документацию:
perldoc -f kill

       kill SIGNAL, LIST
               Sends a signal to a list of processes.  Returns
               the number of processes successfully signaled
               (which is not necessarily the same as the number
               actually killed).

Формат команды виден? Возвращаемое значение видно?

PS. неужели так трудно доку почитать? ;-)
"No! Try not! Do. Or do not. There is no try." -- Yoda
Parent - By Dimidrol Date 31.03.04 12:17
Формат конечно понятен. Только не понятно, что в качестве LIST использовать. В качестве SIGNAL (если я правильно понял) номер процесса надо указывать.

P.S.
Как раз справку читаем в первую очередь. Просто иногда сложно разобраться (для меня по крайней мере).
Parent - By LOE (Site/forum admin) Date 01.04.04 07:49 Edited 01.04.04 07:50
Надо взять англо-русский словарик и перевести.
               Sends a signal to a list of processes.  Returns
               the number of processes successfully signaled
               (which is not necessarily the same as the number
               actually killed).
или:
              Послать сигнал списку процессов. Возвратит
              число процессов, благополучно "осигналенных" :-)
              (это не обязательно то-же, что и число убитых на самом деле)

SIGNAL - это код посылаемого сигнала
LIST - список процессов, которым этот сигнал послать.
Ну ведь даже по названиям ясно!

PS. или плохо читаем справку, или с английским вообще не дружим.
"No! Try not! Do. Or do not. There is no try." -- Yoda
Parent - By Dimidrol Date 01.04.04 12:16
Все. Проблема решена.
Правда так я и не получил ответа, что код сигнала для уничтожения процесса SIGNAL=9 (это наверное я должен быть знать сам к своему стыду).
Спасибо.

P.S.
Все-таки  проще мне кажется сразу было ответить:
   kill 9, 962;
Parent By LOE (Site/forum admin) Date 01.04.04 18:04
Не проще.
Посуди, если тебе дать сразу ответ, ты и выяснять деталей не будешь, а значит ничего не запомнишь.
В данном случае, тебе все-же пришлось немного раскинуть мозгами, а значит это надолго запомнится :-)

На счет SIGNAL=9, да, это _должно_ быть известно тому, кто работает с юниксом.
В плане дальнейших изысканий:
kill -l (команда в шелле, не в перле)
less /usr/include/asm/signal.h
"No! Try not! Do. Or do not. There is no try." -- Yoda
Previous Next Up Topic Софт / Программное обеспечение / PERL (7567 hits)

Powered by mwForum 2.12.0 © 1999-2007 Markus Wichitill

Page created in 0.073s with 10 database queries.