在我们遇到的每一个需要输入输出的pwn题中一般都会有下面这几条语句
setvbuf(stdin, 0LL, 2, 0LL);
setvbuf(stdout, 0LL, 2, 0LL);
setvbuf(stderr, 0LL, 2, 0LL);
直到今天才彻底搞明白这三句话的作用。
因为我们搭建pwn题一般都是用socat进行端口转发,pwn题搭建详情
但是socat不是一次写一行而是一次写一个缓冲区
所以我们可以通输入参数type=2(行缓冲)的setvbuf来使得每次从流中读入一行数据或向流中写入一行数据。