2017-10-10 73 views
0

文件存在並且裏面有json數據。我想知道file.but的長度,當我嘗試下面的代碼,但大小保持爲0fstat獲取文件大小爲零

int file_contentl_Len = 0; 
int fd_0 ; 

fd_0 = open(FILE_PATH_CONFIG_0, O_WRONLY | O_TRUNC | O_CREAT, 0644); 

if(fd_0 < 0) 
{ 
    printf("\r\nError opening Config file %s: %s\n",FILE_PATH_CONFIG_0, strerror(errno)); 
    return -1; 
} 

struct stat buf; 
fstat(fd_0, &buf); 
file_contentl_Len = buf.st_size; 


printf("\r\nConfig file %s content length: %d\r\n", FILE_PATH_CONFIG_0, file_contentl_Len); 
+0

爲什麼DOS風格的行結束於Linux?最奇特的! –

+0

即使他在Windows上,也不需要'\ r \ n'; 'printf'應該正確地爲你處理。 –

回答

4

您打開該文件用於截斷寫作,如果有必要創建它 - O_WRONLY | O_TRUNC | O_CREAT

大小零告訴你截斷工作,或文件被創建爲空。

如果您想讀取文件中的內容,請改爲使用O_RDONLY。或者使用O_RDWR並仔細考慮是否允許創建文件。

+0

謝謝,我刪除了O_TRUNC它現在工作正常。 – HardikHarpal