gpt4 book ai didi

C: IF 语句未按预期触发

转载 作者:行者123 更新时间:2023-11-30 21:13:56 25 4
gpt4 key购买 nike

我有以下功能。可执行文件运行良好。在提示符下,程序运行后,我输入\x0037337331,B的值设置为B: 0x31333337

有关如何触发打开 log.txt 的任何建议

int play() {
int a;
int b;
char buffer[010];
a = 0x41414141;
b = 0x42424242;

if (write(STDOUT_FILENO, "For a moment, nothing happened. Then, after a second or so, nothing continued to happen.\n> ", 91) < 0) {
perror("write");
}

if (read(STDIN_FILENO, &buffer, 0xC) < 0) {
perror("read");
}

if (a == 31337) {
system(buffer);
}
else if (b == 1337) {
readfile("log.txt");
}
else {
printf("B: 0x%08x\n", b);
}
}

最佳答案

你有两个错误:

线路:

char buffer[010]; // This is octal i.e. 8!

应该是

char buffer[0xc]; 

还有

read(STDIN_FILENO, &buffer, 0xC)

应该是

read(STDIN_FILENO, buffer, 0xC)

因为您需要指向缓冲区开头的指针。

编辑

此外,您还需要在系统之前将空字符添加到缓冲区。

关于C: IF 语句未按预期触发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41608637/

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