F_SEAL_SEAL未声明,即使包含标题也是如此

时间:2016-09-06 16:09:28

标签: c linux fcntl

我试图在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("%d\n",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,根据手册页......所以我还应该做些什么,以及描述的位置在哪里?

(该页面只是说密封是&#34;特定于Linux&#34;,但没有提供进一步的细节。这就是包含GNU_SOURCE定义的原因,这就是你如何得到另一个特定于Linux的东西,但是对于F_SEAL_SEAL来说似乎没什么区别。)

(Ubuntu 16.04 LTS,Linux 4.4.0-36)

1 个答案:

答案 0 :(得分:2)

你想要

#include <linux/fcntl.h>

而不是

#include <fcntl.h>