Thanks! On Tue, Aug 27, 2024 at 11:22 AM Alejandro Colomar <alx@xxxxxxxxxx> wrote: > > Hi Absee, > > On Tue, Aug 27, 2024 at 06:09:33AM GMT, Absee Seeab wrote: > > I'm not sure that's a good way to construct documentation examples > > personally, but here is an example program demonstrating that my claim > > is correct, as I agree that's useful for you to have. > > Feel free to edit it as you see fit. > > Thanks! > > I've rewritten it to: > > > #define _GNU_SOURCE > #define _FILE_OFFSET_BITS 64 > #include <err.h> > #include <fcntl.h> > #include <stdint.h> > #include <stdio.h> > #include <stdlib.h> > #include <unistd.h> > > int > main(void) > { > int fd; > int pfd[2]; > off_t off; > const char s[12] = "Hello, world"; > > fd = open("out", O_WRONLY | O_CREAT | O_EXCL, 0666); > if (fd == -1) > err(EXIT_FAILURE, "open"); > > if (pipe(pfd) == -1) > err(EXIT_FAILURE, "pipe"); > > if (write(pfd[1], s, sizeof(s)) != sizeof(s)) > err(EXIT_FAILURE, "write"); > if (close(pfd[1]) == -1) > err(EXIT_FAILURE, "close"); > > off = 10; > if (splice(pfd[0], NULL, fd, &off, sizeof(s), 0) != sizeof(s)) > err(EXIT_FAILURE, "splice"); > if (close(pfd[0]) == -1) > err(EXIT_FAILURE, "close"); > > printf("New offset is %jd\n", (intmax_t) off); > > if (close(fd) == -1) > err(EXIT_FAILURE, "close"); > exit(EXIT_SUCCESS); > } > > And used it as > > $ gcc -Wall -Wextra splice.c > $ ./a.out > New offset is 22 > $ echo $? > 0 > $ hd out > 00000000 00 00 00 00 00 00 00 00 00 00 48 65 6c 6c 6f 2c |..........Hello,| > 00000010 20 77 6f 72 6c 64 | world| > 00000016 > > > I think this is interesting information to readers of the page. (And we > didn't have an example, so this is better than nothing.) > > I'll put it all together in a patch. > > Have a lovely day! > Alex > > > -- > <https://www.alejandro-colomar.es/>