struct arg delete = decode_arg("delete", factory->params, argc, argv);
bool bDelete = ARG_BOOLEAN(delete);
+ struct arg write_bytes = decode_arg("write-bytes", factory->params, argc, argv);
+ int iWrite_bytes = ARG_INTEGER(write_bytes);
+
+ if (iWrite_bytes < 0)
+ err(EXIT_FAILURE, "write-bytes must be a positive number or zero.");
+
+ free_arg(&write_bytes);
free_arg(&delete);
free_arg(&file);
fname = NULL;
}
+ for (int i = 0; i < iWrite_bytes; i++) {
+ if (write(fd, "z", 1) != 1) {
+ int e = errno;
+ close(fd);
+ if (fname)
+ unlink(fname);
+ errno = e;
+ err(EXIT_FAILURE, "failed to write");
+ }
+ }
+
fdescs[0] = (struct fdesc){
.fd = fdescs[0].fd,
.close = bDelete? close_fdesc: unlink_and_close_fdesc,
.desc = "delete the file just after making it",
.defv.boolean = false,
},
+ {
+ .name = "write-bytes",
+ .type = PTYPE_INTEGER,
+ .desc = "write something (> 0)",
+ .defv.integer = 0,
+ },
PARAM_END
},
},