mirror of
https://github.com/9fans/plan9port.git
synced 2025-01-15 11:20:03 +00:00
37 lines
532 B
C
37 lines
532 B
C
|
#include <u.h>
|
||
|
#include <libc.h>
|
||
|
|
||
|
void
|
||
|
cat(int f, char *s)
|
||
|
{
|
||
|
char buf[8192];
|
||
|
long n;
|
||
|
|
||
|
while((n=read(f, buf, (long)sizeof buf))>0)
|
||
|
if(write(1, buf, n)!=n)
|
||
|
sysfatal("write error copying %s: %r", s);
|
||
|
if(n < 0)
|
||
|
sysfatal("error reading %s: %r", s);
|
||
|
}
|
||
|
|
||
|
void
|
||
|
main(int argc, char *argv[])
|
||
|
{
|
||
|
int f, i;
|
||
|
|
||
|
argv0 = "cat";
|
||
|
if(argc == 1)
|
||
|
cat(0, "<stdin>");
|
||
|
else for(i=1; i<argc; i++){
|
||
|
f = open(argv[i], OREAD);
|
||
|
if(f < 0)
|
||
|
sysfatal("can't open %s: %r", argv[i]);
|
||
|
else{
|
||
|
cat(f, argv[i]);
|
||
|
close(f);
|
||
|
}
|
||
|
}
|
||
|
exits(0);
|
||
|
}
|
||
|
|