我的目的是減少對內核的文件寫操作,因此在POSIX上尋找緩存/緩衝機制。我相信標準C庫setbuf可以做到這一點,但在POSIX中有沒有類似的調用?如何在寫操作之前緩存/緩衝數據
E.g.我想設置一個1KB的緩衝區大小,並且不希望我的程序在超過緩衝區大小之前啓動對磁盤的實際寫入操作。
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