Да, после одного системного вызова read из STDIN в кусок памяти можно сделать новый вызов read из STDIN в новый кусок памяти.
При этом закрывать старый кусок памяти не нужно. Обычно закрывают файловые дескрипторы и сокеты, но после этого из них уже нельзя читать данные. После вызова read нужно обработать ошибку, если она была.