有时候我会看到编译器抱怨这一行。
#include <sys/io.h>
使用以下方法修改代码:
致命错误:sys / io.h:没有那个文件或目录
如果我只是改变它为:
#include <sys/uio.h>
它会像魔法一样工作。有人能解释一下其中的区别吗?为什么有些操作系统有一个但没有另一个?
编辑: 这个问题不仅发生在OS X上,也发生在Linux上。
<sys/io.h>
是一个头文件,用于在C语言中访问底层输入输出(I/O)操作。它包含了一些函数和常量,例如读写端口、内存映射I/O等。如果你需要进行底层I/O编程,就需要包含这个头文件。 - melpomene<sys/uio.h>
来自POSIX:http://pubs.opengroup.org/onlinepubs/9699919799/basedefs/sys_uio.h.html - alk#include <sys/io.h>
后,你的代码甚至无法编译吗? - alk<sys/uio.h>
来实现可移植性不是更好吗?有<sys/io.h>
会带来什么好处呢? - Fermat's Little Student