c - F_SEAL_SEAL未声明,即使包含头文件



我正在尝试在Linux上使用文件密封。下面是一个示例C程序。

#define _GNU_SOURCE
#include <unistd.h>
#include <fcntl.h>
int main(void) {
    (void)F_SEAL_SEAL;
}

您可以使用gcc -Wall -o ./linux_file_sealing linux_file_sealing.c或类似的方法构建它。

当我构建它时,我得到一个关于F_SEAL_SEAL的错误。

gcc -Wall -o ./linux_file_sealing linux_file_sealing.c
linux_file_sealing.c: In function ‘main’:
linux_file_sealing.c:7:19: error: ‘F_SEAL_SEAL’ undeclared (first use in this function)
     printf("%dn",F_SEAL_SEAL);
                   ^
linux_file_sealing.c:7:19: note: each undeclared identifier is reported only once for each function it appears in

我包括unistd.hfcntl.h,根据手册页…那么我还应该做些什么,在哪里有描述?

(手册页只是说密封是"特定于linux的",但没有给出进一步的细节。这就是包括GNU_SOURCE定义的原因,这是您如何获得其他特定于linux的东西,但对于F_SEAL_SEAL似乎没有区别。

(Ubuntu 16.04 LTS, Linux 4.4.0-36)

你想

#include <linux/fcntl.h>
不是

#include <fcntl.h>

相关内容

  • 没有找到相关文章

最新更新