Commit Graph

22 Commits

Author SHA1 Message Date
jym 331bd1b067 As suggested by Enami, rework the msgfmt logic a bit:
- error out when an unknown specifier is used. Do this in f_msgfmt(),
before dd(1) starts operation.
- allow buffer_write() to flush the internal buffer even when NULL is
passed as parameter.

Some whitespace fixes too.
2011-11-07 22:24:23 +00:00
jym 234ccf064a Add a new command to dd(1): msgfmt. The command modifies the
output of the information summary returned by dd(1). This can be used
to specify messages in a more usable (or parseable) format like
human-readable values.

My intent is to re-use this for building image files and quick I/O
benchmarking.

Reviewed by tsutsui@ on tech-userlevel. See also
http://mail-index.netbsd.org/tech-userlevel/2010/12/03/msg004179.html

Some examples:

 $ dd if=/dev/zero of=/dev/null bs=1m count=1 msgfmt=human
1+0 records in
1+0 records out
1048576 bytes (1,0 MB) transferred in 0.001 secs (1048576000 bytes/sec - 1,0 GB/sec)

 $ dd if=/dev/zero of=/dev/null count=1 msgfmt='
 > <speed>%E</speed>
 > <time>%s</time>
 > <bytes>%b</bytes>
 > '
<speed>500 KB/sec</speed>
<time>0.001</time>
<bytes>512</bytes>
2011-11-06 21:22:23 +00:00
joerg 6b5273200c Use __dead for the small build too 2011-09-16 16:06:23 +00:00
joerg 5bb1ddccc2 Use __dead 2011-08-29 14:51:17 +00:00
pooka 6b03da8b7e Add two new operands: "rif" and "rof". They operate exactly like
"if" and "of" with the exception that the communicate with a rump
kernel instead of the host kernel.

For example, to write stdout to /tmp/file.txt in a rump kernel namespace:
	dd rof=/tmp/file.txt

copy /file1 to /file2 inside a rump kernel:
	dd rif=/file1 rof=/file2

copy a snippet from /dev/rmd0d on the rump kernel to the host fs:
	dd rif=/dev/rmd0d of=save seek=1000 count=3

Eat that, usermode OS.

(I'll document the operands one I have some manpage to refer to
for rump client use).
2010-11-22 21:04:27 +00:00
apb b7d86f5e4c In "dd progress=N", let the value of N control how often
to print a "." to stderr.  Previously, any non-zero
value behaved like "progress=1".

PR 24300

Approved by christos
2006-01-09 10:17:05 +00:00
jschauma 6a75fbb636 Following private discussion with kleink@ and hubertf@ and public discussion
on tech-userlevel@, back out printescaped() functionality.
kleink: ``We sell rope.''
2003-09-14 19:20:16 +00:00
agc b5b2954259 Move UCB-licensed code from 4-clause to 3-clause licence.
Patches provided by Joel Baker in PR 22249, verified by myself.
2003-08-07 09:05:01 +00:00
jschauma 458ed23412 As discusses a little while back on tech-userlevel:
If stdout is a tty, use vis(3) to print any filenames to prevent garbage
from being printed if the filename contains control- or other non-printable
characters.

While here, sprinkle some EXIT_FAILURE and NOTREACHED where appropriate.
2003-08-04 22:31:21 +00:00
lukem 301fb81a16 Replace {u_,}longlong_t usage with {u,}int64_t, as the former has
"issues" and really shouldn't be used outside of the Sun XDR stuff.
Thanks again to Chuck Silvers for reminding me.
2001-11-26 00:13:23 +00:00
lukem b6ce735c04 - Use u_longlong_t instead of u_quad_t, u_long, or int for various buffer sizes
- Add strsuftoull(), which parses a number into a u_longlong_t, with
  multiplication support, and support for 'g' (GB) and 't' (TB) suffices.
  If an error occurs, print to stderr and exit.
  Based on get_blk() from args.c and strsufto*() (in other programs)
- Add strsuftoullx(), which acts as per strsuftoull() but returns the
  error in the supplied buffer instead (if the returned buffer != "", an
  error occurred)
- Replace get_bsz() use with strsuftoull()
- Remove (now) unnecessary argument validation
- Remove unused {f,p,s,t}_stats fields in struct IO
2001-11-25 10:50:06 +00:00
lukem 8605a1aa68 - ANSI KNF
- WARNS=2 (mainly converting some "char *" -> "const char *")
2001-11-25 06:53:48 +00:00
christos 80dd95bb8f block siginfo during writes. 2000-08-02 16:46:16 +00:00
hubertf 4d486ab67d Add "progress=1" switch to show a sign of life by printing a '.' for
every block written to the output file.
1999-07-29 19:03:31 +00:00
christos 4a3a58b6f2 Fix compiler warnings.
Add WARNS=1
1997-07-20 21:58:35 +00:00
jtc dba6c61918 Re-do change to use const qualifer with conversion tables.
Fixed bug where pre-computed upper/lower case conversion tables were
used.  This won't work if user selected a different locale.
1996-02-20 19:29:01 +00:00
cgd 6e72825941 Previous change (Use const qualifier with conversion tables) is broken.
(1) It won't compile, and (2) there's code in dd.c which actually
does modify (some, all, used?) conversion tables, so they can't _all_ be
const (if any can).
1996-02-20 18:54:01 +00:00
jtc a162c334b1 Use const qualifier with conversion tables 1996-02-19 23:12:55 +00:00
cgd 49f0ad8601 convert to new RCS id conventions. 1995-03-21 09:01:59 +00:00
mycroft 667b5ea158 Merge 4.4-Lite version. 1994-09-22 09:24:46 +00:00
mycroft a579b792ce Add RCS identifiers. 1993-08-01 18:59:54 +00:00
glass 28bef3964d added dd(1) from ftp.uu.net:bsd-sources; torching GNU dd 1993-05-04 07:08:38 +00:00