summaryrefslogtreecommitdiff
path: root/userspace/cat.c
diff options
context:
space:
mode:
Diffstat (limited to 'userspace/cat.c')
-rw-r--r--userspace/cat.c17
1 files changed, 11 insertions, 6 deletions
diff --git a/userspace/cat.c b/userspace/cat.c
index 5b419ca..d0b018b 100644
--- a/userspace/cat.c
+++ b/userspace/cat.c
@@ -5,8 +5,17 @@ int main(int argc, char **argv)
FILE *f;
if(argc>1){
char buf[256];
- sprintf(buf,"%s/%s",getenv("PWD"),argv[1]);
- f=fopen(buf,"r");
+ if(argv[1][0]!='/')
+ {
+ sprintf(buf,"%s/%s",getenv("PWD"),argv[1]);
+ printf("cat %s\n",buf);
+ f=fopen(buf,"r");
+ }
+ else
+ {
+ printf("cat %s\n",argv[1]);
+ f=fopen(argv[1],"r");
+ }
}
else f=stdin;
@@ -15,14 +24,10 @@ int main(int argc, char **argv)
char c;
- printf("-- reading from file byte by byte --\n\n");
-
while(fread(&c,1,1,f))
{
printf("%c",c);
}
- printf("\n-- no more data on this file --\n");
-
return 0;
}