在我們遇到的每一個需要輸入輸出的pwn題中一般都會有下面這幾條語句
setvbuf(stdin, 0LL, 2, 0LL);
setvbuf(stdout, 0LL, 2, 0LL);
setvbuf(stderr, 0LL, 2, 0LL);
直到今天才徹底搞明白這三句話的作用。
因爲我們搭建pwn題一般都是用socat進行端口轉發,pwn題搭建詳情
但是socat不是一次寫一行而是一次寫一個緩衝區
所以我們可以通輸入參數type=2(行緩衝)的setvbuf來使得每次從流中讀入一行數據或向流中寫入一行數據。