c - WIFEXITED WIFEXITSTATUS 宏

标签 c luajit

我正在使用 luajit ffi 库调用 C 库函数 waitpid。

但是我找不到状态结果编码的合适规范。我找到的唯一文档是我更喜欢用纯 lua 编写的 C 宏函数。

我简要查看了定义这些宏的头文件,您知道吗,它们并不简单,而是引用其他宏,而这些宏又引用其他宏。

你能帮忙吗?

最佳答案

一种方法是将宏包装在小函数中:

#include <sys/types.h>
#include <sys/wait.h>

int wifexited(int status) {
  return WIFEXITED(status);
}

int wifexitstatus(int status) {
  return WEXITSTATUS(status);
}

现在构建一个 DLL(你没有提到操作系统,所以你必须自己解决)。

加载 DLL ffi.load(...),最后:

waitpidlib = ffi.cdef[[
  int wifexited(int status); 
  int wifexitstatus(int status);
]]
...
local ans = waidpidlib.wifexited(42)

关于c - WIFEXITED WIFEXITSTATUS 宏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39843314/

相关文章:

c - GCC 不会就转换和数据丢失发出警告

c - Tizen 文档提供了 C header 但没有提供 Lib 名称?

垃圾收集中的 luajit 段错误

c++ - 将lua脚本编译成dll?

c++ - LuaJIT 和 C++ - 对 Table.Method() 的调用在 loadstring/pcall 中不起作用

c - while 测试条件时使用 scanf 内部

c - 有什么方法可以区分规范模式下的 EOL 和 EOF 吗?

c - fork() 搜索 3D 数组 C 编程

c++ - 如何通过导入的目标可传递地设置 “CMAKE_EXE_LINKER_FLAGS”?

自定义 Lua 字节码解释器的 LuaJIT 与 luac