Rainer Weikusat: > k...@aspodata.se writes: > > Katola2: > > ... > >> void another_print_start(char *name, char *what){ > >> > >> char c[3] = " :"; > >> > >> c[2] = name[0] & ~0x20; > >> > >> write(2, c+2, 1); > >> write(2, name+1, strlen(name) -1); > >> write(2, c, 2); > >> write(2, what, strlen(what)); > >> > >> } > > > > Why not just use writev(2) and write it one system call ?
Since people complained about allocations, I thought you could use this and have a static struct iovec[4];, then the only allocations done would be for simple types. > The idea behind writev is to avoid userspace block memory copies prior ... > that's 3 lines of code less which is "not great". In addition to this, > both write and writev may end up writing less data than requested and > the code for restarting a partially completed writev is more complicated > than the same for write. Both true. Regards, /Karl Hammar ----------------------------------------------------------------------- Aspö Data Lilla Aspö 148 S-742 94 Östhammar Sweden +46 173 140 57 _______________________________________________ Dng mailing list Dng@lists.dyne.org https://mailinglists.dyne.org/cgi-bin/mailman/listinfo/dng