C-потоки: копирование данных из одного потока в другой напрямую, без использования буфера

Я хочу скопировать данные из одного потока в другой. Теперь нормально, я бы сделал это так:

n = fread(buffer, 1, bufsize, fin);
fwrite(buffer, 1, n, fout);

Есть ли способ записи данных непосредственно изfin вfoutбез прохождения через буфер, т.е. вместоfin->buffer->foutХочу прямо сделатьfin->fout (без буфера).

Возможно ли это сделать в ANSI C? Если нет, то возможно ли это сделать с помощью функций POSIX? Или решение для Linux?