2014-12-09 4 views
-8

내 코드가 실행되는 상대 경로를 사용하여 디렉토리를 만들려고합니다. 그것은 나에게 오류를 준다.mkdir 함수는 C로 구현할 수 없습니다

formalbuild.c:2361: error: expected expression before '.' token

formalbuild.c:2361: error: too few arguments to function 'mkdir'

내 코드는 다음과 같습니다 당신이 man page가 표시되면 알 수 있습니다

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

mkdir을 구현하려고합니까? 이제 mkdir이 UNIX의 C로 구현되었다는 사실을 알고 있기 때문에 걱정할 필요가 없습니다. – sashoalm

+1

우리가 그것을 이해할 수 있도록 코드를 올바르게 들여 씁니다. – TheBigH

+5

'./jgproject'를 인용 부호로 둘러 쌉니다. –

답변

0

, 함수 서명은 const char *로 첫 번째 인수를 필요로

int mkdir(const char *pathname, mode_t mode); 

입니다.

당신은 .는 필요한 구문 누락 [구조 조합원 액세스]는 c 연산자로 해석되면, " "들없이

mkdir("./jgproject" , 0777); 

mkdir(./jgproject , 0777); 

을 변경할 필요가있다.

fclose() 파일 포인터는 fopen() -ed가 성공적 일 때만 추가해야합니다. fclose()if (fp) { } 블록 안으로 이동합니다.