我有以下代码。
typedef pid_t (*getpidType)(void);
pid_t getpid(void)
{
printf("Hello, getpid!\n");
getpidType* f = (getpidType*)dlsym(RTLD_NEXT, "getpid");
return f(); // <-- Problem here
}
编译器抱怨called object ‘f’ is not a function
. 这里发生了什么?我没有以正确的方式声明和使用函数指针f吗?