嘿,我对 C 本身相当陌生,对在 C 中使用系统调用也很陌生,但我必须将它用于作业,所以我试图练习读写文件。读取工作正常,但由于某种原因写入正在做奇怪的事情。它向文件写入某种我想要写入文件的数字的填充十六进制表示形式。任何帮助将不胜感激!!
buffer= 10;
if (write(file, &buffer,sizeof(int)) < sizeof(int)) {
printf("Error in writing\n");
exit(EXIT_FAILURE);
}
当我运行它时,它会将其放入文件中,但是当我打印出数字本身时,它会打印正确的数字
0a00 0000
最佳答案
sizeof(int)
是 4 个字节(显然在您的环境中),它是 32 位,可以用 8 个十六进制数字表示,这就是您在文件中看到的内容。
您显然正在使用 Little Endian机,因此首先写入最低有效字节。在大端机器上,您会在文件中看到 0000 000a。
关于c - 在 C 中使用系统调用编写填充十六进制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28353806/