我正在尝试 LD_PRELOAD linux 的 clone
函数。在我的 LD_PRELOADed 版本中,我需要在调用原始 clone
函数之前记录输入参数。然而,问题是 clone
需要可变数量的参数。它是这样声明的。
int clone(int (*fn)(void *), void *child_stack, int flags, void *arg, ...
/* pid_t *pid, struct user_desc *tls, pid_t *ctid */ );
现在要将这些参数传递给原始的 clone
函数,我必须知道传入的参数数量。我该怎么做?
最佳答案
使用 va_*
函数,这些是处理可变参数列表的方法。
这是 man page最后还包含一个示例。
关于计算克隆函数的可变参数数量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11191651/