WIFEXITED WIFEXITSTATUS宏

时间:2016-10-04 02:35:49

标签: c luajit

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

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

我简要介绍了定义这些宏的头文件,你知道吗,它们并不简单,但是引用其他宏来引用其他宏。

你能帮忙吗?

1 个答案:

答案 0 :(得分:0)

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

#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)