我的问题很简单。为什么下面的代码可以在 Linux 上运行,但不能在 Mac OS X 10.6.2 Snow Leopard 上运行。
要编译,请将文件保存到 aio.cc,并g++ aio.cc -o aio -lrt在 Linux 和g++ aio.cc -o aioMac OS X 上进行编译。我使用 Mac OS X 10.6.2 在 Mac 上进行测试,并使用 Linux 内核 2.6 在 Linux 上进行测试。
我在 OS X 上看到的故障是 aio_write 失败,返回 -1 并将 errno 设置为 EAGAIN,这只是意味着“资源暂时不可用”。这是为什么?
extern "C" {
#include <aio.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <sys/types.h>
#include <arpa/inet.h>
#include <netinet/in.h>
#include <errno.h>
#include <signal.h>
}
#include <cassert>
#include <string>
#include <iostream>
using namespace …Run Code Online (Sandbox Code Playgroud)