From b461c3558b2fe765a4bac512638b0acf5185b4bb Mon Sep 17 00:00:00 2001 From: Miguel Date: Fri, 12 Oct 2018 00:30:44 +0200 Subject: imeplemented /dev/tty and minimalistic "less" --- userspace/less.c | 41 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 41 insertions(+) create mode 100644 userspace/less.c (limited to 'userspace/less.c') diff --git a/userspace/less.c b/userspace/less.c new file mode 100644 index 0000000..c1792ae --- /dev/null +++ b/userspace/less.c @@ -0,0 +1,41 @@ +#include +#include + +#define VERSION "0.1" +int main(int argc, char **argv) +{ + printf("--== fool's %s - version %s ==-\n",argv[0],VERSION); + + // keyboard + int ctrl_fd=_open("/dev/tty"); + + // Input (default stdin) + FILE *in=stdin; + + // Output + FILE *out=stdout; + + // In case a Filename was supplied (TODO: getcwd / setcwd , chdir, open realative to dir. + if(argc>1){ + { + in=fopen(argv[1],"r"); + } + } + + char buf[256]; + + for(int i=0;i<20;i++) + { + if(fgets(buf,256,in)==NULL)return EXIT_SUCCESS; + fputs(buf,out); + } + + while(1) + { + if(fgets(buf,256,in)==NULL)break; + fputs(buf,out); + _read(ctrl_fd,buf,1); // wait for any key + } + + return EXIT_SUCCESS; +} -- cgit v1.2.3