/* sendfile zum kopieren verwenden: (alles quick & dirty, hatte leider keine Zeit)16:44 < markus> Greek0 und ich haben uns gestern noch sendfile angeschaut. 16:44 < markus> Wir haben zwar kein wirklich beweiskräftigen Benchmark zusammengebracht, aber sendfile hat fast 0 usertime 16:45 < markus> d.h. cp file1 file2 kehrt sofort zurück, auch wenn dann noch länger gesynct wird;) 16:48 < markus> bei gnu wurde ein solcher patch verworfen... 16:49 < markus> obwohl man sich size/4048 kontext switches und copy von kernel<->user<->kernel erspart 16:55 < rotty> erspart man sich da auch bei einer microkernelarchitektur (L4) unbedingt was? 17:02 < markus> rotty: wenn ich microkernel richtig verstanden habe ist dort die Fileverwaltung im Userspace, so wie bei FUSE... 17:03 < markus> da aber read/write trotzdem syscalls mit interrupts sind (die zeitaufwendig sind) dürfte man sich sogar dort was ersparen 17:08 < markus> sendfile wurde von Greek0 erwähnt wie wir über fragmentierung geredet haben... 17:09 < markus> weil bei sendfile könnte theoretisch das Dateisystem gucken wieviele Daten noch kommen werden und dann die Blöcke geschickter aufteilen */ #include #include #include #include #include #include int main(int argc, char ** argv) { off_t t = 0; struct stat s; open (argv[1], O_RDONLY); stat (argv[1], &s); open (argv[2], O_WRONLY); sendfile(3,4,&t, (size_t) s.st_size); return 0; }