警告 1:implicit declaration of function ‘chmod’
原因:当你在代码里调用chmod函数时,编译器没找到该函数的声明。这一般是因为没有包含对应的头文件。
解决办法:在代码里添加#include <sys/stat.h>,这个头文件包含了chmod函数的声明。
警告 2:passing argument 1 of ‘exit’ makes integer from pointer without a cast
原因:exit函数的参数需要是一个整数类型,不过你传递的是一个字符串"-1"。
解决办法:把字符串"-1"改成整数-1。
以下是修正后的代码示例:
#include <stdio.h>
#include <sys/stat.h> // 包含chmod函数的声明
#include <stdlib.h> // 包含exit函数的声明
int main() {
int ret;
ret = chmod(“./test”, 0777);
if (ret == -1) {
perror(“chmod”);
exit(-1); // 修正为整数 -1
}
return 0;
}
在这个修正后的代码中,我们添加了#include <sys/stat.h>来包含chmod函数的声明,并且把传递给exit函数的参数从字符串"-1"改成了整数-1。这样就能避免编译器发出的警告了。