Переполнение происходит, scanf читает всю строку до символа перевода строки, но буфер всего 4 байта, и происходит перезапись данных, что за буфером. Видимо дальше хранится имя файла, которое и выводится. Необходимо использовать безопасный scanf (в винде это scanf_s, в линуксе не знаю).