Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/macos/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何将libbsm/openbsm与macOS上的Swift5一起使用?_Macos_Swift5.2 - Fatal编程技术网

如何将libbsm/openbsm与macOS上的Swift5一起使用?

如何将libbsm/openbsm与macOS上的Swift5一起使用?,macos,swift5.2,Macos,Swift5.2,我尝试在Xcode11中使用libbsm/openbsm库和Swift5。 为什么?我无法确定AUDITPIPE\u SET\u PRESELECT\u MODE 我可以在Swift中使用libbsm/openbsm吗 var mode = AUDITPIPE_PRESELECT_MODE_LOCAL // <- works very well if ioctl(auditFD, AUDITPIPE_SET_PRESELECT_MODE, &mode) == -1 { re

我尝试在Xcode11中使用libbsm/openbsm库和Swift5。
为什么?我无法确定
AUDITPIPE\u SET\u PRESELECT\u MODE

我可以在Swift中使用libbsm/openbsm吗

var mode = AUDITPIPE_PRESELECT_MODE_LOCAL // <- works very well
if ioctl(auditFD, AUDITPIPE_SET_PRESELECT_MODE, &mode) == -1 {
    return -1
}

var mode=AUDITPIPE\u PRESELECT\u mode\u LOCAL//我遇到了与Swift相同的问题,Swift无法导入这些复杂的宏。Quinn“爱斯基摩人!”为我指明了将它们声明为c常量的方向。所以我在我的项目中的一个c文件中创建了它们

在.h文件中,我执行了以下操作:

#include <stdio.h>
#include <bsm/libbsm.h>
#include <sys/ioctl.h>
#include <security/audit/audit_ioctl.h>


// -- Macros used for creating an auditpipe
extern unsigned long QAUDITPIPE_SET_PRESELECT_MODE;
extern unsigned long QAUDITPIPE_GET_QLIMIT_MAX;
extern unsigned long QAUDITPIPE_SET_QLIMIT;
extern unsigned long QAUDITPIPE_SET_PRESELECT_FLAGS;
extern unsigned long QAUDITPIPE_SET_PRESELECT_NAFLAGS;
// -- End auditpipe macros

所以现在我可以在我的Swift代码中使用QAUDITPIPE\u SET\u PRESELECT\u模式。很好

我遇到了同样的问题,Swift无法导入这些复杂的宏。Quinn“爱斯基摩人!”为我指明了将它们声明为c常量的方向。所以我在我的项目中的一个c文件中创建了它们

在.h文件中,我执行了以下操作:

#include <stdio.h>
#include <bsm/libbsm.h>
#include <sys/ioctl.h>
#include <security/audit/audit_ioctl.h>


// -- Macros used for creating an auditpipe
extern unsigned long QAUDITPIPE_SET_PRESELECT_MODE;
extern unsigned long QAUDITPIPE_GET_QLIMIT_MAX;
extern unsigned long QAUDITPIPE_SET_QLIMIT;
extern unsigned long QAUDITPIPE_SET_PRESELECT_FLAGS;
extern unsigned long QAUDITPIPE_SET_PRESELECT_NAFLAGS;
// -- End auditpipe macros
所以现在我可以在我的Swift代码中使用QAUDITPIPE\u SET\u PRESELECT\u模式。很好