aboutsummaryrefslogtreecommitdiffstats
path: root/usr/save.c
blob: 1755fea85bc777bd7167f5242b8776993d5d9a54 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include "gbos.h"
/* save <name>: read one line from stdin and store it as a file. */
void main(void) {
    char *argv[4];
    unsigned char argc = argv_parse(argv, 4);
    unsigned char fd;
    char c;
    if (argc < 1) { puts("usage: save <name>"); nl(); return; }
    fd = open(argv[0], O_WRITE);
    if (fd > 3) { puts("save: cannot create"); nl(); return; }
    for (;;) {
        c = readc();
        if (c == EOF) break;
        putc(c);            /* echo */
        fputc(fd, c);
        if (c == '\n') break;
    }
    close(fd);
}