C-十六进制值0x00未写入文件

时间:2018-09-17 00:11:31

标签: c hex hexdump

我正在编写程序,并且想在文件中写入一些十六进制地址。问题是,当我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);

1 个答案:

答案 0 :(得分:2)

您试图用fprintf的%s写入空字符。空字符是字符串终止符。不会那样写。使用fwrite或fputc。