我正在编写一个程序,我想在文件中写一些十六进制地址。问题是,当我hexdump -C temp
文件,我只看到bc ab
和\x00
没有写入文件由于某些我不明白的原因。也许他们被认为是EOF角色?任何帮助都非常感谢。
File *file;
char *buffer, *ptr;
ptr = buffer;
*(ptr++) = '\xbc';
*(ptr++) = '\xab';
*(ptr++) = '\x00'; // problem
*(ptr++) = '\x00';
file = fopen("temp", "w");
if (file == NULL) {
fprintf(stderr, "Opening file failed.\n");
exit(1);
}
fprintf(file, "%s", buffer);
fclose(file);
您尝试使用fprintf的%s写入空字符。空字符是字符串终止符。它不会那样写。使用fwrite或fputc。