如何将EOF发送到python中的进程

时间:2017-05-20 15:51:59

标签: c eof

现在我有一个如下程序:

#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的地方。但似乎没有用。

我想知道如何离开循环然后发送最后一个输入。

0 个答案:

没有答案