<unistd.h>和<sys/unistd.h>有什么区别?

问题描述 投票:0回答:1

在 Alpine Linux 上构建我的项目(使用 musl libc),我从编译器中收到错误:

未找到

musl libc 没有

<sys/unistd.h>
。我将 include 行更改为
#include <unistd.h>
并且它编译成功(仍然有功能无法正常工作)。

我很好奇

<unistd.h>
<sys/unistd.h>
之间的区别,但我在Google上找不到任何答案。 StackOverflow 上有一个关于不同
unistd.h
的问题,但所有答案都没有提到任何关于
unistd.h
的内容。

c
1个回答
6
投票

unistd.h
文件在 POSIX 系统(Linux、UNIX、MacOS 等)上很常见,包含这些系统上使用的函数和宏的声明。

sys/unistd.h
很可能是旧系统的残余。在 CentOS 上,此文件仅包含
#include <unistd.h>
。它在基于 Alpine 或 Debian 的系统上不存在。

© www.soinside.com 2019 - 2024. All rights reserved.