2015-01-31 43 views
0

我試圖寫入文件成員的大小[count](成員是一個char *的數組保存文件名稱)到一個文件。我搜索了一下,看看其他人做了什麼,這是我發現的,但是當我打開它時沒有任何東西被寫入文件。無法弄清楚如何寫一個整數寫入一個文件()

int file_len; 
file_len = strlen(basename(members[count])); 
write(file_desc, &file_len, sizeof(int)); 

如果我原來試過如下:

int file_len; 
file_len = strlen(basename(members[count])); 
write(file_desc, ("%d", file_len), sizeof(int)); 

但我得到這個編譯器錯誤:

「過客‘寫’的論點2將整數賦給指針不進行強制轉換」

我在程序的不同部分做了類似的事情,它工作正常,但有一些關於它是一個整數,使它無法正常工作

+0

第一句應該說「我試圖將filename成員[count](成員是一個char *數組,其中包含文件名)的大小寫入文件中。「 – niktak11 2015-01-31 23:02:38

回答

0

使用write()寫入整數可能會很棘手,因爲它將處理二進制形式的整數。如果file_len恰好是零,它實際上將只寫一個空字節(0x0)

如果你不想太凌亂,使用fprintf(),像這樣:

FILE * file_desc = fopen("yourfile.txt", "w"); 
/* your code here */ 
fprintf(file_desc, "%d", file_len); 
+0

由於某些原因,我的教授要求我們對所有文件輸入使用write() – niktak11 2015-01-31 23:44:30