我想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
功能,我必须知道的都通过了参数的数目。我该怎么办呢?
你还碰巧有LD_PRELOAD代码(或者至少是一些骨架)?因为我正在尝试做同样的事情,并且陷入了clone()varags。根据va_ *的实现来回答已接受的答案,我认为它只会在堆栈中随机(随机)数据。调用者必须始终告诉被调用者使用多少(参数数量,终止符,格式字符串或者某物)。 – fiction