F_SEAL_SEAL 未声明,即使包含 headers
F_SEAL_SEAL undeclared, even when headers are included
我正尝试在 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.h
和 fcntl.h
...那么我还应该做什么,在哪里描述的?
(手册页只是说密封是 "Linux-specific",但没有提供更多细节。这就是包含 GNU_SOURCE
定义的原因,这就是您如何获得其他 Linux-specific 的东西,但对于 F_SEAL_SEAL
来说似乎没什么区别。)
(Ubuntu 16.04 LTS,Linux 4.4.0-36)
你想要
#include <linux/fcntl.h>
而不是
#include <fcntl.h>
我正尝试在 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.h
和 fcntl.h
...那么我还应该做什么,在哪里描述的?
(手册页只是说密封是 "Linux-specific",但没有提供更多细节。这就是包含 GNU_SOURCE
定义的原因,这就是您如何获得其他 Linux-specific 的东西,但对于 F_SEAL_SEAL
来说似乎没什么区别。)
(Ubuntu 16.04 LTS,Linux 4.4.0-36)
你想要
#include <linux/fcntl.h>
而不是
#include <fcntl.h>