Моя цель - уменьшить операции записи файлов в ядро, поэтому ищет механизм кэширования/буферизации на POSIX. Я считаю, что стандартная библиотека C setbuf делает это, но есть ли аналогичный вызов в POSIX?Как кэшировать/буферизовать данные перед операцией записи
E.g. Я хотел бы установить размер буфера 1 Кбайт и не хочу, чтобы моя программа начала фактическую операцию записи на диск до превышения размера буфера.
fdpipe= open(PIPE_NAME,O_RDONLY);
......
fd = open(filename,O_CREAT|O_WRONLY|O_TRUNC|O_LARGEFILE,S_IREAD|S_IWRITE);
....
while((len = read(fdpipe,buffer,sizeof(buffer))) > 0) {
....
ret = write(fd,buffer,length = strlen(buffer));
}
Правильно, но пользователь запрашивает другой метод, отличный от setbuf, как я понимаю, как в вопросе. – Koray
@KorayAlkan oops - Я имел в виду 'setvbuf'. Никогда не следует отвечать перед кофе. – Casey