- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我有一个使用 fchmod 的函数 createFile:
int createFile(char *pFileName) {
int ret;
if ((ret = open(pFileName, O_RDWR | O_CREAT | O_TRUNC)) < 0)
errorAndQuit(2);
fchmod(ret, S_IRUSR | S_IWUSR);
return ret;
}
在我的文件顶部,我有以下内容:
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <unistd.h>
#include <sys/stat.h>
#include <fcntl.h>
编译时:编译器吐出:
warning: implicit declaration of function ‘fchmod’
我包含了所有正确的文件,但收到此警告。该程序运行良好,即使有警告。
最佳答案
巧合的是,feature_test_macros(7)
联机帮助页直接回答了您的问题:
Specification of feature test macro requirements in manual pages
When a function requires that a feature test macro is
defined, the manual page SYNOPSIS typically includes a note
of the following form (this example from the chmod(2) manual
page):
#include <sys/stat.h>
int chmod(const char *path, mode_t mode);
int fchmod(int fd, mode_t mode);
Feature Test Macro Requirements for glibc (see
feature_test_macros(7)):
fchmod(): _BSD_SOURCE || _XOPEN_SOURCE >= 500
The || means that in order to obtain the declaration of
fchmod(2) from <sys/stat.h>, either of the following macro
definitions must be made before including any header files:
#define _BSD_SOURCE
#define _XOPEN_SOURCE 500 /* or any value > 500 */
Alternatively, equivalent definitions can be included in the
compilation command:
cc -D_BSD_SOURCE
cc -D_XOPEN_SOURCE=500 # Or any value > 500
关于C 警告 : implicit declaration of function ‘fchmod’ ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5918539/
这是我尝试对文件应用权限的部分代码。 fd=fopen(file_name,"wb"); fchmod(fd,(mode_t)perm); 其中 perm 是一个整数。例如:644 或 755我试过不
程序: #include #include #include #include void main() { int fd=open("b.txt",O_RDONLY); fchmod(
我有一个使用 fchmod 的函数 createFile: int createFile(char *pFileName) { int ret; if ((ret = open(pFile
使用 fchmod(int fildes, mode_t mode) 是否比使用 chmod(const char * path, mode_t mode) 更好? 最佳答案 这几乎是一样的。 chm
我想用 Python 更改文件模式。 os 模块具有三个功能上看似相同的功能: os.chmod os.fchmod os.lchmod 这三个版本有什么区别? 最佳答案 chmod 用于更改路径指定
我是一名优秀的程序员,十分优秀!