" Y fdatasync\n"
" z seek to zero\n";
-void null_handler(int unused) { }
+static int usr1_received;
+void usr1_handler(int unused)
+{
+ usr1_received = 1;
+}
static const char *
pop_arg(int argc, char *argv[])
exit(1);
}
- signal(SIGUSR1, null_handler);
+ signal(SIGUSR1, usr1_handler);
fname = argv[1];
for (commands = argv[2]; *commands; commands++) {
switch (*commands) {
case '_':
- pause();
+ if (usr1_received == 0)
+ pause();
+ usr1_received = 0;
+ signal(SIGUSR1, usr1_handler);
break;
case 'c':
if (close(fd) == -1) {
}
break;
case 'D':
- if (open(fname, O_DIRECTORY) == -1) {
+ fd = open(fname, O_DIRECTORY);
+ if (fd == -1) {
perror("open(O_DIRECTORY)");
exit(1);
}
exit(1);
}
break;
- case 'w':
- if (write(fd, "w", 1) == -1) {
+ case 'w': {
+ int rc;
+ if ((rc = write(fd, "w", 1)) == -1) {
perror("write");
exit(1);
}
break;
+ }
case 'W':
for (i = 0; i < mmap_len && mmap_ptr; i += 4096)
mmap_ptr[i] += junk++;