Having to concatenate lots of large files into an even larger single one, we currently use
cat file1 file2 ... output_filebut are wondering whether it could be done faster than with that old friend.
Reading the man page of sendfile()
, one can specify an offset into *input_file*, from where to send the remainder of it to *output_file*. But: can I also specify an offset into *output_file*?
Or could I simply loop over all input files, simply by leaving open my output FD and sendfile()'ing repeatedly into it, effectively concatenating the *input_files*?
In other words: would the filepointer into my output FD remain at its end, if I do not close it nor seek() in it?
Does anybody knows of such a cat
implementation using sendfile()
?
Admittedly, I'm an admin, not a programmer, so please bear with my lack of 'real' coding knowledge...