如何使用fwrite写入数据0xf0f0f0f0

发布于 2024-12-23 17:46:33 字数 301 浏览 2 评论 0原文

我需要使用 fwrite 将分隔符 = 0xf0f0f0f0 写入二进制文件。需要以这样的方式完成:在 UNIX 上的 xxd 中查看时,0xf0f0f0f0 出现在文件的开头。我目前正在这样做,

  unsigned int delim[1];
  delim[1] = 0xf0f0f0f0;
  fwrite(delim, 4, 1, destination);

但它显然不起作用,因为 xxd 在文件开头显示了这一点:

  0000000: 90c9 49ac

I need to use fwrite to write a delimiter = 0xf0f0f0f0 to a binary file. It needs to be done in such a way that 0xf0f0f0f0 appears at the beginning of the file when viewed in xxd on UNIX. I'm currently doing it this way,

  unsigned int delim[1];
  delim[1] = 0xf0f0f0f0;
  fwrite(delim, 4, 1, destination);

But it's clearly not working since xxd is showing this at the beginning of the file:

  0000000: 90c9 49ac

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

你爱我像她 2024-12-30 17:46:33

可能应该是

 unsigned int delimnum = 0xf0f0f0f0;
 fwrite(&delimnum, sizeof(delimnum), 1, destination);

或者至少使用 delim[0] 因为数组索引从 0 开始。

Probably should be

 unsigned int delimnum = 0xf0f0f0f0;
 fwrite(&delimnum, sizeof(delimnum), 1, destination);

Or at least use delim[0] since array indexing starts at 0.

清浅ˋ旧时光 2024-12-30 17:46:33

这是:

unsigned int delim[1];

是一个包含一个元素的数组。

this:

delim[1] = 0xf0f0f0f0;

指的是单元素数组中的第二个元素,这不是正确的代码。

如果您想将某些内容放入单元素数组中,请将 delim[1] 更改为 delim[0]

This:

unsigned int delim[1];

is an array containing one element.

This:

delim[1] = 0xf0f0f0f0;

refers to the second element in a single-element array, which is not correct code.

Change delim[1] to delim[0], if you want to put something in your single-element array.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文