无法弄清楚如何使用write()将整数写入文件

时间:2015-01-31 22:56:51

标签: c file arguments

我正在尝试将文件成员的大小[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));

但是我得到了这个编译错误:

“传递'write'的参数2使得整数指针没有强制转换”

我在程序的不同部分做了类似的事情并且工作正常,但有一些关于它是整数使得它不起作用

1 个答案:

答案 0 :(得分:0)

使用write()来编写整数可能很棘手,因为它将以二进制形式处理整数。如果file_len恰好为零,它实际上只会写空字节(0x0)

如果您不想太乱,请使用fprintf(),如下所示:

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