+ sleep(1);
+
+ if (close(fd) < 0) {
+ fprintf(stderr, "%d: error closing file1: %s\n",
+ getpid(), strerror(errno));
+ rc = EXIT_FAILURE;
+ }
+
+ if (close(fd2) < 0) {
+ fprintf(stderr, "%d: error closing file2: %s\n",
+ getpid(), strerror(errno));
+ rc = EXIT_FAILURE;
+ }
+
+ if (waitpid(child_pid, &child_status, 0) < 0) {
+ fprintf(stderr, "%d: cannot get termination status of %d: %s\n",
+ getpid(), child_pid, strerror(errno));
+ rc = EXIT_FAILURE;
+ } else if (!WIFEXITED(child_status)) {
+ fprintf(stderr, "%d: child %d terminated with status %d\n",
+ getpid(), child_pid, child_status);
+ rc = EXIT_FAILURE;
+ } else {
+ rc = WEXITSTATUS(child_status);
+ }
+