왜 어쩔 땐 되고 어쩔 땐 안되는 지 모르겠습니다..
/home/bof/flag 앞에 있는 문자열의 길이가 같지 않아서 그렇습니다. 코드를 보시면 입력받는 변수의 크기는 128이고 그 뒤에 open하는 변수가 있기때문에 /home/bof/flag앞에 정확히 128만큼만 문자열을 써 줬을때 잘 동작하는 하는 것이고 아닐때는 생각과 다르게 동작하는 것입니다. 질문자님의 사진을 보면 /home/bof/flag앞에 있는 문자열의 길이들이 다 다르죠? 그래서 그렇습니다 :)