UNIXシステムコール 位置決めをしてファイルに書く

#include <sys/types.h>  /* lseek, open, write */
#include <stdio.h>      /* perror */
#include <stdlib.h>     /* exit */
#include <sys/stat.h>   /* open */
#include <fcntl.h>      /* open */
#include <sys/uio.h>    /* write */
#include <unistd.h>     /* close, lseek, write */

int main(void) {
  int fd;

  if ((fd = open("abc.txt", O_WRONLY)) < 0) {
    perror("open");
    exit(1);
  }

  if (lseek(fd, 1, SEEK_SET) == -1) {
    perror("lseek");
    exit(1);
  }

  if (write(fd, "def\n", 4) != 4) {
    perror("write");
    exit(1);
  }

  if (close(fd) < 0) {
    perror("close");
    exit(1);
  }

  return 0;
}