什么时候应该使用系统调用函数而不是 glibc 包装器?

When should syscall function be used instead of glibc wrapper?

man syscall 页说,"it is useful when there is no wrapper function in c library"。如果包装函数可用,使用包装函数总是更好吗?如果不是,什么时候应该更喜欢 syscall

从来没有。

您应该 曾经 考虑使用 syscall() 的唯一情况是调用在您的 C 库中没有包装器的系统调用。与 libc 包装器相比,它绝对没有优势,而且有很多缺点。 (例如:它不太清楚,不可移植,并且绕过了编译时对参数数量和类型的检查。)