/* * "Talk" to a file. Two-process version. This is useful for * talking to things in the portal filesystem or connected to * Unix domain sockets. * * Dan Cross */ #include #include #include #include #include int main(int argc, char *argv[]) { pid_t pid; int fd, n; char buf[1024]; if (argc != 2) { fprintf(stderr, "Usage: prog socket.\n"); exit(EXIT_FAILURE); } fd = open(argv[1], O_RDWR); if (fd < 0) { perror(argv[1]); exit(EXIT_FAILURE); } pid = fork(); if (pid < 0) { perror("fork"); exit(EXIT_FAILURE); } if (pid == 0) while ((n = read(0, buf, sizeof buf)) > 0) write(fd, buf, n); else while ((n = read(fd, buf, sizeof buf)) > 0) write(1, buf, n); close(fd); return(EXIT_FAILURE); }