我正在尝试使用执行代码的相对路径创建目录。它给了我一个错误。
formalbuild.c:2361:错误:'。'之前的预期表达式令牌
formalbuild.c:2361:错误:函数'mkdir'的参数太少
我的代码是:
if (JG_flag){
mkdir(./jgproject , 0777);
if(stat(DEF_CFE_LOG_FILE, &stat_var) != -1){
if(stat_var.st_size > 0){
fp = fopen(DEF_CFE_LOG_FILE,"r");
if(fp){
CopyFileToLog(fp, DEF_JG_HAL_LOG_FILE);
error_func_log("\n");
}
fclose(fp);
}
}
}
答案 0 :(得分:0)
如果您看到man page,您会注意到,功能签名是
int mkdir(const char *pathname, mode_t mode);
要求第一个参数为const char *
。
您需要更改
mkdir(./jgproject , 0777);
到
mkdir("./jgproject" , 0777);
如果没有" "
,.
将被解释为c
运算符[用于结构和联合成员访问],缺少必需的语法。
要添加到此,您需要fclose()
文件指针,只有在成功fopen()
时才需要。移动fclose()
if (fp) { }
块内的{{1}}。