#include <fcntl.h>
#include <stdlib.h>
#include <unistd.h>
#include <string.h>
#include <err.h>

int
main(int argc, char *argv[])
{
    int fd;
    int nwrite;
    int i;

    if (argc < 3)
        errx(EXIT_FAILURE, "usage: %s file str1 [str2...]", argv[0]);

    if ((fd = open(argv[1], O_WRONLY | O_APPEND)) == -1)
        err(EXIT_FAILURE, "%s", argv[1]);

    for (i = 2; i < argc; i++) {
        if (lseek(fd, 0, SEEK_SET) == -1)
            err(EXIT_FAILURE, "lseek");

        if ((nwrite = write(fd, argv[i], strlen(argv[i]))) == -1)
            err(EXIT_FAILURE, "write");

        if (nwrite < strlen(argv[i]))
            errx(EXIT_FAILURE, "partial write");
    }

    exit(EXIT_SUCCESS);
}
