C语言 和< unistd.h>&lt;sys/unistd. h&gt;之间有什么区别?

sxissh06  于 5个月前  发布在  其他
关注(0)|答案(1)|浏览(45)

在Alpine Linux上构建我的项目(使用musl libc),从编译器得到一个错误:找不到<sys/unistd.h>; musl libc没有<sys/unistd.h>。我将include行改为#include<unistd.h>,它编译成功(仍然有功能不起作用)。我很好奇和<unistd.h><sys/unistd.h>之间的差异,但在Google上找不到任何答案;有一个关于不同unistd. h的堆栈溢出问题,但所有答案甚至没有提到任何关于unistd. h的问题

piztneat

piztneat1#

unistd.h文件在POSIX系统(Linux、UNIX、MacOS等)上很常见,包含在这些系统上使用的函数和宏的声明。
sys/unistd.h很可能是旧系统的残留物。在CentOS上,此文件仅包含#include <unistd.h>。它在基于Alpine或Debian的系统上不存在。

相关问题