#include "user.h" void _start(const char* arg, unsigned long arglen) { if (arglen == 0 || arglen >= 120) { put("usage: run save \n"); sys_exit(1); } char name[128]; for (unsigned long i = 0; i < arglen; i++) name[i] = arg[i]; name[arglen] = 0; long fd = sys_open(name, O_CREAT | O_TRUNC | O_WRONLY); if (fd < 0) { put("save: "); put(name); put(": cannot open\n"); sys_exit(1); } put("saving to "); put(name); put(" -- type lines, a single . saves\n"); for (;;) { char line[256]; int bytes_read = read_line(line, 256); put("\n"); if (bytes_read == 1 && line[0] == '.') break; (void)sys_write(fd, line, (unsigned long)bytes_read); (void)sys_write(fd, "\n", 1); } (void)sys_close(fd); put("saved "); put(name); put("\n"); sys_exit(0); }