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

标签 linux system-calls glibc

man syscall 的页面说,“当 c 库中没有包装函数时它很有用”。如果包装函数可用,使用包装函数总是更好吗?如果不是,什么时候应该优先使用 syscall

最佳答案

从不。

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

关于linux - 什么时候应该使用系统调用函数而不是 glibc 包装器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35953997/

相关文章:

linux - 我怎样才能从硬盘上制作一张没有任何痕迹的图像,这样即使是专家也无法发现发生了什么?

linux - 如何在 docker 容器中定义环境变量以与我的 jar 文件一起使用

linux - 如何测试 Linux 内核版本

c - 了解 C 中的页面复制

c - 为什么在 glibc 中不推荐使用 'sys_errlist'?

c++ - shellcode 在单独运行时调用不同的系统调用

linux - 传递给 STAT 系统调用的结构的精确定义是什么?

linux - 我如何在 nasm 中获取系统调用 getcwd 返回字符串的真实长度?

c - Ubuntu 16.04上没有 "renameat2"系统调用功能

c++ - *** 检测到 glibc *** {二进制路径} : double free or corruption (out): 0x0000000000639310 ***