现在我有一个如下程序:
#include <stdio.h>
#include <unistd.h>
int main(){
char str[200];
while(read(0, str,10)>0){
printf("%s", str);
}
printf("good\n");
scanf("%s", str);
printf("%s\n", str);
}
当收到EOF时,此程序将打印good
,然后继续接受我的下一个输入,然后在直接运行的情况下将其打印出来。
我要做的是用另一个python代码与它交互:
from pwn import *
r = process('./test')
r.send('123')
print r.recv(1000)
r.send('\x04')
print r.recv(1000)
但无论如何,除非我关闭连接,否则我无法退出while循环。但是如果我关闭连接,我将无法发送最后一个输入。 我找到了'\ x04'代表EOF的地方。但似乎没有用。
我想知道如何离开循环然后发送最后一个输入。