tfc_say(" cont: print error if not quiet, then continue,");
tfc_say(" no action to pad missing data is attempted.");
tfc_say(" may be dangerous when working with block devices.");
- tfc_say(" sync: print error if not quiet, then continue.");
+ tfc_say(" sync: print error if not quiet, then continue,");
tfc_say(" pad missing data block with zeroes.");
- tfc_say(" note that sync works only with read errors!");
+ tfc_say(" lsync: same as sync, but does not use SEEK_SET logic,");
+ tfc_say(" lsync uses only relative seek operations, and does not prequery");
+ tfc_say(" the current file position for exact offsets, which maybe unsafe.");
+ tfc_say(" For this reason, it is HIGHLY recommended to use sync instead!");
+ tfc_say(" Note that both sync and lsync work only with read errors!");
tfc_say(" default error action is exit with printing status if not quiet.");
tfc_say(" -E xall: turn on error actions above for all errors, not just EIO errors.");
- tfc_say(" This must be a separate option given before usual -E how option.");
+ tfc_say(" -E xseek: ignore positioning and other seek related errors.");
+ tfc_say(" Multiple -E specifiers may be given in separate options.");
tfc_say(" -O opts: set options (comma separated list):");
tfc_say(" sync: request a synchronous I/O for a output,");
tfc_say(" fsync: on each write() call a corresponding fsync(fd),");
tfc_say(" oseek=val: seek destination file/device by these val bytes.");
tfc_say(" count=val: process only these val bytes, both input and output.");
tfc_say(" xkey=val: take only val bytes from user keyfile.");
+ tfc_say(" okey=val: seek the key before reading it (usually a device).");
tfc_say(" xctr=val: specify size in bytes of initial counter prepended or read.");
tfc_say(" -P: plain IO mode: disable encryption/decryption code at all.");
tfc_say("\n");