summaryrefslogtreecommitdiff
path: root/userland/cat
diff options
context:
space:
mode:
Diffstat (limited to 'userland/cat')
-rw-r--r--userland/cat/Makefile10
-rwxr-xr-xuserland/cat/catbin0 -> 33852 bytes
-rw-r--r--userland/cat/cat.c24
3 files changed, 34 insertions, 0 deletions
diff --git a/userland/cat/Makefile b/userland/cat/Makefile
new file mode 100644
index 0000000..b45fae9
--- /dev/null
+++ b/userland/cat/Makefile
@@ -0,0 +1,10 @@
+CC="/home/anton/opt/cross/bin/i686-elf-gcc"
+CFLAGS = -ggdb -ffreestanding -O0 -Wall -Wextra -pedantic -mgeneral-regs-only -Wimplicit-fallthrough
+BINS=cat
+all: $(BINS)
+
+cat.o: cat.c
+ $(CC) $(CFLAGS) -L../libc/ -lc -c cat.c -I../libc/
+
+cat: cat.o
+ $(CC) -shared -o cat -ffreestanding -nostdlib $(CFLAGS) cat.o -L../libc/ -lc -lgcc #-L../libc/c.a
diff --git a/userland/cat/cat b/userland/cat/cat
new file mode 100755
index 0000000..2ba0c4d
--- /dev/null
+++ b/userland/cat/cat
Binary files differ
diff --git a/userland/cat/cat.c b/userland/cat/cat.c
new file mode 100644
index 0000000..b143581
--- /dev/null
+++ b/userland/cat/cat.c
@@ -0,0 +1,24 @@
+#include <fcntl.h>
+#include <stdio.h>
+#include <dirent.h>
+
+int main(int argc, char **argv) {
+ DIR *d = opendir("/");
+ struct dirent *de = readdir(d);
+ printf("x : %x\n", de->d_name[0]);
+ for (;;)
+ ;
+ /*
+ int fd = 0;
+ if (argc < 2)
+ goto read_stdin;
+ for (int i = 1; i < argc; i++) {
+ if ((fd = open(argv[i], O_RDONLY, 0)) == -1) {
+ return 1;
+ }
+ read_stdin:
+ for (char c[4096], int rc; (rc = read(fd, c, 4096) > 0);)
+ write(1, c, rc);
+ }*/
+ return 0;
+}