【发布时间】:2024-01-02 00:03:01
【问题描述】:
这是我用于使用 LD_PRELOAD 包装函数的模板:
int gettimeofday(struct timeval *tv, struct timezone *tz) {
static int (*gettimeofday_real)(struct timeval *tv, struct timezone *tz)=NULL;
if (!gettimeofday_real) gettimeofday_real=dlsym(RTLD_NEXT,"gettimeofday");
return gettimeofday_real(tv, tz);
}
我意识到虽然 ioctl 似乎具有以下签名:
int ioctl(int d, unsigned long request, ...);
鉴于签名中的...,我如何以类似的方式包装它?
【问题讨论】:
标签: c linux system-calls ld-preload