Небуферизованный ввод-вывод и буферизованный ввод-вывод установлены на небуферизованный

Каковы различия/преимущества использования read, write и других небуферизованных функций ввода-вывода в C по сравнению с установкой стандартной буферизации ввода-вывода на небуферизованную с использованием, например, setvbuf?


person Duarte Arribas    schedule 20.04.2021    source источник
comment
Преимущества/недостатки перед чем?   -  person Eugene Sh.    schedule 20.04.2021
comment
@ЕвгенийШ. преимущества read/write перед fread/fwrite с небуферизованным потоком.   -  person Emanuel P    schedule 20.04.2021
comment
fread/fwrite — это библиотечные функции C (то есть переносимые). read/write — это системные вызовы, специфичные для системы.   -  person Eugene Sh.    schedule 20.04.2021
comment
Как использование функций POSIX (интерфейс переносимой операционной системы) не является переносимым?   -  person Duarte Arribas    schedule 20.04.2021
comment
Windows не POSIX ????   -  person Eugene Sh.    schedule 20.04.2021
comment
Хорошо, я понимаю. В любом случае можно использовать WSL, но я понимаю, о чем вы говорите.   -  person Duarte Arribas    schedule 20.04.2021


Ответы (2)


Недостатком использования функций read и write POSIX является то, что в этом случае вы пишете программу POSIX, а не программу на C. Это точно так же, как если бы вы использовали Win32 ReadFile в своей программе, что сделало бы ее только Win32.

person Zan Lynx    schedule 20.04.2021

Когда вы используете FILE, вы по-прежнему можете использовать семейство функций fprintf, чего нельзя делать с файловым дескриптором.

person Devolus    schedule 20.04.2021