prestaveni signalu za behu

Michael Mraka michael na informatics.muni.cz
Čtvrtek Červen 4 14:35:04 CEST 1998


Petr Skoda wrote:
% Ta aplikace ma jeste predlicensovany soubor, ktery umoznuje plny beh v
% danem obdobi - coz bylo pred rokem.  Da se to obelstit presunem hodin zpet
% , ale pak to napacha v systemu hrozne veci - holt ani fyzikalni ani
% virtualni cas se nedaji bez nasledku vracet - asi je to vlastnost naseho
% vesmiru a principy kauzality se musi dodrzet;-))
% 
% Proto me napadlo, nemuze se nahradit v systemove knihovne volani time()
% tak, aby vracelo normalne spravne ubehly cas od 1.1.1970 vsemu, krome jobu
% s konkretnim PID - a tomu to offsetovat o rok, - nebo o volitelnou hodnotu
% - a nebo rovnou vracet konstantu  ?
% 
% Muze nekdo navrhnout kostru takoveho reseni ? 

----libtime.c
#include <time.h>

time_t time(time_t *t)
	{ return 0;}
------------
$gcc -shared -o libtime.so libtime.c

$LD_PRELOAD=libtime.so ta_aplikace

Knihovnu v niz je prepsana fce time ma prelodovanou jenom ta_aplikace,
takze ostatni programy se chovaji normalne. Timhle zpsobem jsem si kdysi
poustel jeden cesko-anglicky slovnik, ktery jinak psal cosi o tom, ze uz
expiroval. IMHO se o poruzeni AZ nejedna :-) protoze te binarky jsem se
ani nedotkl (a oni nepsali, ze se po danem datu nesmi poustet, ale ze se
nepusti; a vidite, pustila :-).

PS: Ale k nicemu vas nenavadim:-).

--mm                                                             Michael Mráka
                                                     mailto:michael na fi.muni.cz
                                                http://www.fi.muni.cz/~michael



Další informace o konferenci Linux