dd: support >2gb values for seek, skip, count
This commit is contained in:
parent
ed836cdc30
commit
5dd27b1ee0
@ -44,6 +44,12 @@ static ssize_t full_write_or_warn(int fd, const void *buf, size_t len,
|
|||||||
return n;
|
return n;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#if ENABLE_LFS
|
||||||
|
#define XATOU_SFX xatoull_sfx
|
||||||
|
#else
|
||||||
|
#define XATOU_SFX xatoul_sfx
|
||||||
|
#endif
|
||||||
|
|
||||||
int dd_main(int argc, char **argv)
|
int dd_main(int argc, char **argv)
|
||||||
{
|
{
|
||||||
enum {
|
enum {
|
||||||
@ -79,13 +85,13 @@ int dd_main(int argc, char **argv)
|
|||||||
obs = xatoul_range_sfx(arg+4, 0, ((size_t)-1L)/2, dd_suffixes);
|
obs = xatoul_range_sfx(arg+4, 0, ((size_t)-1L)/2, dd_suffixes);
|
||||||
else if (!strncmp("bs=", arg, 3))
|
else if (!strncmp("bs=", arg, 3))
|
||||||
ibs = obs = xatoul_range_sfx(arg+3, 0, ((size_t)-1L)/2, dd_suffixes);
|
ibs = obs = xatoul_range_sfx(arg+3, 0, ((size_t)-1L)/2, dd_suffixes);
|
||||||
// FIXME: make them capable of eating LARGE numbers
|
/* These can be large: */
|
||||||
else if (!strncmp("count=", arg, 6))
|
else if (!strncmp("count=", arg, 6))
|
||||||
count = xatoul_sfx(arg+6, dd_suffixes);
|
count = XATOU_SFX(arg+6, dd_suffixes);
|
||||||
else if (!strncmp("seek=", arg, 5))
|
else if (!strncmp("seek=", arg, 5))
|
||||||
seek = xatoul_sfx(arg+5, dd_suffixes);
|
seek = XATOU_SFX(arg+5, dd_suffixes);
|
||||||
else if (!strncmp("skip=", arg, 5))
|
else if (!strncmp("skip=", arg, 5))
|
||||||
skip = xatoul_sfx(arg+5, dd_suffixes);
|
skip = XATOU_SFX(arg+5, dd_suffixes);
|
||||||
|
|
||||||
else if (!strncmp("if=", arg, 3))
|
else if (!strncmp("if=", arg, 3))
|
||||||
infile = arg+3;
|
infile = arg+3;
|
||||||
|
Loading…
Reference in New Issue
Block a user