我正在尝试将文件成员的大小[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使得整数指针没有强制转换”
我在程序的不同部分做了类似的事情并且工作正常,但有一些关于它是整数使得它不起作用
答案 0 :(得分:0)
使用write()
来编写整数可能很棘手,因为它将以二进制形式处理整数。如果file_len
恰好为零,它实际上只会写空字节(0x0)
如果您不想太乱,请使用fprintf()
,如下所示:
FILE * file_desc = fopen("yourfile.txt", "w");
/* your code here */
fprintf(file_desc, "%d", file_len);