【发布时间】:2021-02-19 05:13:47
【问题描述】:
我在 ubuntu 中创建了一个使用 write() 的程序:
for(i = 0; i < num_times; i++)
{
write(fd, a, strlen(a));
write(fd, &i, sizeof(int));
}
它在文件中写入一个默认字符和 N 个整数。调用是这样的:
write_program(我写的txt文件)(我重复写N次)
write_program 它是可执行文件。
所以对于 N == 2,我会得到类似的结果:
0'a'1'a'
其中a等于'so2'
当我用 ghex 打开它来检查十六进制值时,我得到了:
73 6F 32 00 00 73 6F 32 01(加上末尾的字符)
我的问题是,73 6F 32 重复是什么意思?后面是整数表示(00,01...) 但是,这些十六进制值是什么意思?
【问题讨论】:
-
写什么“默认字符”?请edit您的问题包括minimal reproducible example。还包括你如何初始化
a,它是什么以及它有什么内容。 -
已经完成,认为问题已经很清楚了
-
声称的输出不是您应该得到的。
sizeof(int)可能是4,这意味着在第一个和第二个so2序列之间应该有 四个 个零字节,而不是您显示的两个。