次のコードをコンパイルして LD_PRELOAD で動作させるにはどうすればよいですか? 「 」でエラーなしでコンパイルできましたgcc -m32 -shared code.c
が、コードを「挿入」しようとしているプログラムを開くと、次のように表示されます:「symbol lookup error: ./fps.so: undefined symbol: clock_gettime
」
#include<unistd.h>
#include<time.h>
#define BUSY_WAIT 3000
/* We use clock_gettime because it's better than gettimeofday */
unsigned long long int fetch_clock()
{
struct timespec ts;
clock_gettime(CLOCK_REALTIME, &ts);
return (unsigned long long int)ts.tv_nsec + 1000000*ts.tv_sec;
}
int high_pres_usleep_untill(unsigned long long int end)
{
unsigned long long int busywait, start;
int sleep, delay;
start = fetch_clock();
delay = end - start;
sleep = (delay / BUSY_WAIT) - 1;
if(sleep > 0)
if(usleep(sleep*BUSY_WAIT))
return -1;
while(fetch_clock() < end)
;
return 0;
}