mkdir函数不能在c中实现

时间:2014-12-09 07:26:59

标签: c mkdir

我正在尝试使用执行代码的相对路径创建目录。它给了我一个错误。

  

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);
    }
  }
}

1 个答案:

答案 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}}。