#include #include #include #include #include main(int argc, char *argv[]) { int flight, seats, fd; fd = open("seatfile", O_RDWR); if (fd < 0) { perror("cannot open seatfile"); exit(2); } if (argc != 2) { printf("usage: %s flight_number\n", argv[0]); exit(1); } flight = atoi(argv[1]); lseek(fd, flight*sizeof(int), SEEK_SET); /* lockf(fd, F_LOCK, sizeof(int)); */ read(fd, &seats, sizeof(int)); seats--; sleep(1); printf("%d seats remaining on flight %d\n", seats, flight); lseek(fd, (off_t)(flight*sizeof(int)), SEEK_SET); write(fd, &seats, sizeof(int)); /* lockf(fd, F_ULOCK, -sizeof(int)); */ close(fd); }