gpt4 book ai didi

c - 是否可以使用 read() 函数从文件中检索六字节值?

转载 作者:行者123 更新时间:2023-11-30 16:51:15 25 4
gpt4 key购买 nike

我正在尝试理解一段代码,我想知道它是否真的可以工作。

我不知道文件“test”的内容,但我想它必须与您在代码中看到的“cases”匹配。

我通过创建一个内容为“\x08”或“0x08”(或\x04和0x04)的文件“test”来尝试此代码,但它不会进入前两种情况(相反,读取函数采用“\”,然后是“x”,然后是“0”等,然后将其放入变量i)

int main(){

int i;

fd = open("test",O_RDONLY);

read(fd,&i,1);
switch(i)
{
case 0x08:
printf("0x08");
break;
case 0x04:
printf("0x04");
break;
case 0x61:
printf("0x61");
break;
default:
printf("default\n");
}
close(fd);
return 0;
}

对于情况 3 (0x61),当我将 char a 放入文件中时它会起作用(因为 a 的十六进制值为 0x61 ),但是我可以在前 2 个案例的文件中放入什么?

谢谢

最佳答案

您可以编写自己的测试文件生成器:

...
int i; /* or char i; */
d = open("test", O_WRONLY);
i = 8;
write(fd, &i, sizeof(int)); /* or 1 */
i = 4;
write(fd, &i, sizeof(int)); /* or 1 */
i = 0x61;
write(fd, &i, sizeof(int)); /* or 1 */
close(d);
....

关于c - 是否可以使用 read() 函数从文件中检索六字节值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41841390/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com