【问题标题】:ANSI C compatible event loopANSI C 兼容的事件循环
【发布时间】:2012-11-06 04:04:01
【问题描述】:

是否有 ANSI-C 兼容的事件循环,例如 libev 或 libevent?我的要求是使用 -ansi 标志进行编译。

谢谢。

【问题讨论】:

  • gcc -ansi 选项相当于在 C89 中编译。您是否在问是否有可以用 C89 编译的事件库,而不使用任何不属于标准 C89 库的扩展(例如套接字)?如果不是,为什么对 C89 有限制?您要解决的问题是什么?这是XY Problem吗?
  • 你已经列出了两个不适合你的替代方案,但你没有告诉为什么。准确描述为什么这些不适合,以及您正在寻找哪些功能。如果没有这些信息,人们将无法帮助您。
  • 我必须实现一个点对点系统,并且一个要求是它必须是 ansi-c 兼容的 - 也就是。必须使用 -ansi 标志进行编译。上述库与 ansi 不兼容:如果您尝试编译,它们会给您一个错误。

标签: c multithreading gcc network-programming event-loop


【解决方案1】:

在 Linux 上不能有任何严格兼容 ANSI 的事件循环,因为事件循环的目的是巧妙地多路复用多个输入;在 Linux 上,要进行多路复用,您必须调用一些系统调用,如 poll(2)pselect(2) 或朋友,所有这些系统调用都没有在 ANSI C(或 ISO C99 或 ISO C2011)中标准化,但仅在 Posix 中。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-01-23
    • 2013-11-28
    • 1970-01-01
    • 2021-10-31
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多