2015-01-31 72 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