计算克隆函数的可变参数数量

标签 c linux gcc x86-64 variadic-functions

我正在尝试 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/

相关文章:

c - 如何收集大型 Makefile 项目的所有依赖项?

c++ - 试图理解 GCC-XML 输出变量的含义

使用c代码在linux中编译程序

c - 哈希表中特定消息的百分比

c - 如何在源文件或结构本身中定义结构函数

linux - 更多命令 - linux

c - 在 C 中省略参数名称

c - 动态添加条目到 sysctl

linux - Chrome 突然放大了 ubuntu

c++ - "invalid use of incomplete type"部分模板特化错误