From c41f1de5d41a527a3fa2d1e94215766130eac456 Mon Sep 17 00:00:00 2001 From: rtm Date: Tue, 27 Jun 2006 14:35:53 +0000 Subject: file descriptors pipes --- user1.c | 38 +++++++++++--------------------------- 1 file changed, 11 insertions(+), 27 deletions(-) (limited to 'user1.c') diff --git a/user1.c b/user1.c index 9e0c731..d414699 100644 --- a/user1.c +++ b/user1.c @@ -1,35 +1,19 @@ -int -fork() -{ - asm("mov $1, %eax"); - asm("int $48"); -} - -void -cons_putc(int c) -{ - asm("mov $4, %eax"); - asm("int $48"); -} - -int -puts(char *s) -{ - int i; - - for(i = 0; s[i]; i++) - cons_putc(s[i]); - return i; -} +char buf[32]; main() { - int pid; + int pid, fds[2], n; + + pipe(fds); pid = fork(); - if(pid == 0){ - cons_putc('C'); + if(pid > 0){ + write(fds[1], "xyz", 4); + puts("w"); } else { - cons_putc('P'); + n = read(fds[0], buf, sizeof(buf)); + puts("r: "); + puts(buf); + puts("\n"); } while(1) ; -- cgit v1.2.3