echo.c (553B)
1 #include <u.h> 2 #include <libc.h> 3 4 void 5 main(int argc, char *argv[]) 6 { 7 int nflag; 8 int i, len; 9 char *buf, *p; 10 11 nflag = 0; 12 if(argc > 1 && strcmp(argv[1], "-n") == 0) 13 nflag = 1; 14 15 len = 1; 16 for(i = 1+nflag; i < argc; i++) 17 len += strlen(argv[i])+1; 18 19 buf = malloc(len); 20 if(buf == 0) 21 exits("no memory"); 22 23 p = buf; 24 for(i = 1+nflag; i < argc; i++){ 25 strcpy(p, argv[i]); 26 p += strlen(p); 27 if(i < argc-1) 28 *p++ = ' '; 29 } 30 31 if(!nflag) 32 *p++ = '\n'; 33 34 if(write(1, buf, p-buf) < 0) 35 fprint(2, "echo: write error: %r\n"); 36 37 exits((char *)0); 38 }