我想计算在 C 中调用了多少次系统调用

I want to count how many times system call was called in C

我想统计系统调用被调用了多少次。 我在 C 中创建了包装函数,该函数挂钩“打开”系统调用。 首先我做的是用 openHooking.c 覆盖 open.c 在该代码中,我添加了将 shell 变量更改为原始 open.c 内容的代码。 我认为我可以通过在 shell 中声明环境变量并在 C 脚本中更改它来做到这一点。 但我意识到这是不可能的,因为子进程不能改变父进程。 我想知道系统调用被调用了多少次 我该怎么做?

strace 可以通过 --summary--summary-only 或通过分析其输出自行进行核算!
https://man7.org/linux/man-pages/man1/strace.1.html

有很多标志,但也许很简单

strace --follow-forks --summary ./a.out